统计年龄大于19岁的男女生人数,并按照人数降序排列输出,_id不显示 MongoDB
时间: 2024-10-05 14:04:55 浏览: 41
golang开发使用mongodb统计数据并输出到excel中
在 MongoDB 中,你可以使用 `aggregate` 函数结合 `$match`, `$group`, 和 `$sort` 阶段来统计并按人数降序排列年龄大于19岁的男生和女生人数。假设有一个名为 `users` 的集合,其中包含 `gender` 和 `age` 字段,示例如下:
```javascript
db.users.aggregate([
// 过滤出年龄大于19岁的记录
{ $match: { age: { $gt: 19 } } },
// 按性别分组并计算人数
{ $group: {
_id: "$gender", // 分组依据是性别
count: { $sum: 1 }, // 使用 $sum 计算每组的人数
} },
// 排序结果按照人数降序
{ $sort: { count: -1 } }, // 注意这里的 `-1` 表示降序
// 移除_id字段(如果你确实不想在输出中看到)
{ $project: { _id: 0, gender: 1, count: 1 } },
// 输出最终结果
{ $out: "result" } // 可选,如果你想保存到新的集合
])
```
运行这段脚本后,你将在 `result` 集合(如果有指定的话)中得到一个文档列表,每个文档包含 `gender` 和对应的人数,按人数降序排列。
阅读全文