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 }
]