count操作用于返回一个集合中文档的数量.下面是count操作函数的基本语法:
db.collection_name.count()
db.students.count()
如果想要统计具有特定条件的文档数量,可以在count方法中传入条件:
db.students.count({age: {$gt: 20}})
distinct操作用于返回一个集合中的不同值.下面是distinct操作函数的基本语法:
db.collection_name.distinct(field_name)
db.students.distinct("age")
这个命令将会返回所有不同年龄的学生.
group操作用于将一个集合中的文档按照一个或多个指定条件进行分组,并对每个分组进行聚合操作.下面是group操作函数的基本语法:
db.collection_name.group({
key: {'field1': true, 'field2': true},
reduce: function(obj, prev) {...},
initial: {...},
})
其中,key属性用于指定按照哪些字段进行分组;reduce属性用于指定聚合操作,它是一个匿名函数,接受两个参数obj和prev,obj表示正在处理的文档,prev表示当前分组的结果;initial属性用于指定聚合结果的初始值.
db.scores.group({
key: {class: true},
initial: {count: 0, total_score: 0},
reduce: function(obj, prev){
prev.count◆◆;
prev.total_score ◆= obj.score;
},
finalize: function(prev){
prev.avg_score = prev.total_score / prev.count;
}
})
这个示例代码将会按照班级分组,并计算每个班级的平均分.其中,key属性指定了按照班级分组,reduce属性中定义了对每个班级进行计数和总分求和,finalize属性用于计算平均分.
以上就是土嘎嘎小编为大家整理的MongoDB教程之聚合_count、distinct和group)相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!