mongodb - 根据 mongo db 中的 group by 字段获取所有记录作为列表
问题描述
例如,我有如下文件:
{ "_id" : ObjectId("5ef0f23647c2b4dbae99105c"), "subcategory_name" : "ENTERPRISE ASSET MANAGEMENT", "category_id" : ObjectId("5ef0ec5547c2b4dbae990e9d"), "category_name" : "ERP", "status" : 0 }
{ "_id" : ObjectId("5ef0f23647c2b4dbae991062"), "subcategory_name" : "ENVIRONMENTAL HEALTH AND SAFETY SOFTWARE", "category_id" : ObjectId("5ef0ec5547c2b4dbae990e9d"), "category_name" : "ERP", "status" : 0 }
然后我想要这样的结果:
{
"category_id": ObjectId("5ef0ec5547c2b4dbae990e9d"),
"category_name": "ERP",
"subcategory_list": [
{"_id": ObjectId("5ef0f23647c2b4dbae99105c"), "subcategory_name": "ENTERPRISE ASSET MANAGEMENT"},
{"_id": ObjectId("5ef0f23647c2b4dbae991062"), "subcategory_name": "ENVIRONMENTAL HEALTH AND SAFETY SOFTWARE"}
]
}
解决方案
您可以使用它group
来执行此操作
[
{
$group: {
_id: "$category_id",
category_id: {
"$first": "$category_id"
},
category_name: {
$first: "$category_name"
},
subcategory_list: {
$addToSet: {
_id: "$_id",
subcategory_name: "$subcategory_name",
}
}
}
},
{
$project: {
_id: 0
}
}
]
工作Mongo游乐场
推荐阅读
- azure - 在 Azure 数据工厂中合并数百个数据集的最佳方式
- deep-learning - 我的代码不能在 PyTorch 中的多个 GPU 上运行
- html - React - 选择元素的值不随状态变化而变化
- typescript - 如何处理 AWS S3 存储桶未找到文件错误?- 表达
- powershell - Powershell Azure See 看不到联系人所在的组
- java - Gradle 没有拉下新的依赖项
- ejb - 如何在 Arquillian 集成测试中将 JWT 传递给 EJB?
- ios - 为什么 SwiftUI 中的动画会跳来跳去
- python - 寻求修改代码以从 A 列具有 X 数值的 Excel 工作表中提取数据。(即 value= 0 的所有行)
- angular - 多阶段表单验证角度