执行db.stu.aggregate([{$unwind:'$hobbies'},{$group:{_id:'$hobbies',num:{$sum:1}}}]),可实现( )。
时间: 2023-11-01 09:56:11 浏览: 80
执行db.stu.aggregate([{$unwind:'$hobbies'},{$group:{_id:'$hobbies',num:{$sum:1}}}]),可以实现对 MongoDB 数据库中 stu 集合中每个文档中的 hobbies 数组进行拆分,然后统计每个 hobby 出现的次数。具体地,使用 $unwind 操作符对 hobbies 数组进行拆分,使得每个 hobby 对应一个文档,然后使用 $group 操作符对每个 hobby 进行分组并统计其出现的次数,最后返回每个 hobby 和其出现的次数。
相关问题
MongoDB中插入如下数据: db.stu.insert([ {xh:1,name:"zhangsan",class:"four",age:1}, {xh:1,name:"lisi", class:"five",age:2}, {xh:1,name:"wangwu", class:" four ",age:3}, {xh:1,name:"zhaoliu", class:"five",age:4}, {xh:1,name:"weiqi", class:" four ",age:5}, ]) 进行如下操作,请写出如下语句: (1)统计学生总数和平均年龄; (2)统计各班级人数; (3)统计各班级人数,并按人数降序排列。
(1) 统计学生总数和平均年龄:
```
db.stu.aggregate([
{
$group: {
_id: null,
total: { $sum: 1 },
avgAge: { $avg: "$age" }
}
}
]);
```
(2) 统计各班级人数:
```
db.stu.aggregate([
{
$group: {
_id: "$class",
count: { $sum: 1 }
}
}
]);
```
(3) 统计各班级人数,并按人数降序排列:
```
db.stu.aggregate([
{
$group: {
_id: "$class",
count: { $sum: 1 }
}
},
{
$sort: { count: -1 }
}
]);
```
阅读全文