首先 创建一个集合stu。然后insert一些数据,大概是这样的结果:
> db.stu.find()
{ "_id" : ObjectId("59df80cc6d135618bcd14fdf"), "name" : "a", "age" : "18" }
{ "_id" : ObjectId("59df80d36d135618bcd14fe0"), "name" : "b", "age" : "19" }
{ "_id" : ObjectId("59df82376d135618bcd14fe1"), "name" : "c", "age" : "19" }
{ "_id" : ObjectId("59df823e6d135618bcd14fe2"), "name" : "d", "age" : "18" }
count:
返回指定集合中的文档数目,
> db.stu.count()
4
> db.stu.find({"age":"18"}).count()
2
4
> db.stu.find({"age":"18"}).count()
2
> db.stu.find({"age":"18"}).skip(2).count(true)
0// count会默认忽略skip和limit的参数,所以要加上true
distinct:
0// count会默认忽略skip和limit的参数,所以要加上true
返回无重复的统计结果:
> db.stu.distinct("name")
[ "a", "b", "c", "d" ]
> db.stu.distinct("age")
[ "18", "19" ]
group:
将结果分组,三个参数key,initial,reduce
key:根据哪个键进行分组
initial:元素开始统计的起始基数
reduce:接受两个参数,正在遍历的当前文档和聚集计数对象,称为item,prev
> db.stu.group({
... key:{"name":true},
... initial:{"age":0},
... reduce:function(items,prev){
... }
... }
... )
[
{
"name" : "a",
"age" : 0
},
{
"name" : "b",
"age" : 0
},
{
"name" : "c",
"age" : 0
},
{
"name" : "d",
"age" : 0
}
]
... key:{"name":true},
... initial:{"age":0},
... reduce:function(items,prev){
... }
... }
... )
[
{
"name" : "a",
"age" : 0
},
{
"name" : "b",
"age" : 0
},
{
"name" : "c",
"age" : 0
},
{
"name" : "d",
"age" : 0
}
]