mongodb - Mongo DB 中的类别计数
问题描述
我在 MongoDB Collection 中的数据是:
{ type : "bike", name : "honda" },
{ type : "car", name : "Audi } ,
{ type : "truck", name : "mercedes"},
{ type : "bike", name : "suzuki" },
{ type : "bike", name : "yamaha" },
{ type : "car", name : "tesla"}
我希望输出为:
{ bike : 3 },
{ car : 2 },
{ truck : 1}
我无法通过阅读文档来做到这一点。欢迎任何帮助。
解决方案
$group
按类型并获取重复项的总和,$arrayToObject
将 k 和 v 格式数组转换为对象$replaceRoot
将上面转换的对象替换为根
db.collection.aggregate([
{
$group: {
_id: "$type",
count: { $sum: 1 }
}
},
{
$replaceRoot: {
newRoot: {
$arrayToObject: [
[{ k: "$_id", v: "$count" }]
]
}
}
}
]).toArray();
推荐阅读
- c - 在 C 中将长 shellcode 加载到内存中
- http - 重试 http 请求 RoundTrip
- reactjs - 在 Cypress 通过 npx cypress open 运行之前删除/删除屏幕截图
- python - 如何使 discord.py 命令能够执行 ctx.send 命令
- c++ - 创建线程时如何运行线程主方法?
- bash - 如何使用日期来计算在 bash 脚本中执行命令所花费的时间
- javascript - 无法插入对象列表 MySQL Nodejs
- angular - Angular *ngFor 渲染是异步的吗?
- javascript - 删除项目后刷新角度组件
- java - 如何获取数组中的公共值(Java)?