MongoDB中的GroupBy语句可以用来按照指定的字段对文档进行分组,并且可以对分组后的文档进行计算操作,以得到更多的信息。
使用GroupBy语句的方法:
1、需要在MongoDB中创建一个数据集,例如:
db.collection.insertMany([ {name: "John", age: 20, gender: "male"}, {name: "Jane", age: 25, gender: "female"}, {name: "Jack", age: 30, gender: "male"}, {name: "Jill", age: 35, gender: "female"} ]);
2、使用db.collection.group()函数来分组,例如:
db.collection.group( { key: { gender: 1 }, initial: { count: 0 }, reduce: function(obj, prev) { prev.count += 1; } } );
上面的代码会按照gender字段对文档进行分组,并且统计每组文档的数量,得到的结果如下:
[ { "_id" : "male", "count" : 2 }, { "_id" : "female", "count" : 2 } ]
3、可以使用db.collection.aggregate()函数来对分组后的文档进行计算操作,例如:
db.collection.aggregate([ { $group: { _id: "$gender", averageAge: { $avg: "$age" } } } ]);
上面的代码会按照gender字段对文档进行分组,并且计算每组文档的平均年龄,得到的结果如下:
[ { "_id" : "male", "averageAge" : 25 }, { "_id" : "female", "averageAge" : 30 } ]