json - MongoDB - 如何查询和聚合嵌套文档值
问题描述
我在 mongoDB 集合中有以下3 个Json 文档:
{
'title': 'Best',
'array' : [
{'name' : '1',
'value': '2'
},
{'name' : '3',
'value': '4'
}
]
}
和 :
{
'title': 'Best',
'array' : [
{'name' : '5',
'value': '6'
},
{'name' : '7',
'value': '8'
}
]
}
和:
{
'title': 'Worst',
'array' : [
{'name' : 'Not_needed',
'value': 'Not_needed'
},
{'name' : 'Not_needed',
'value': 'Not_needed'
}
]
}
我需要一个给我的查询:
{[
{'name' : '1',
'value': '2'
},
{'name' : '3',
'value': '4'
},
{'name' : '5',
'value': '6'
},
{'name' : '7',
'value': '8'
}
]}
我怎样才能做到这一点?这就是人们所说的聚合吗?你能给我提供一个 mongoDB 查询吗?
解决方案
这是一个使用聚合框架的查询,几乎可以生成您想要的文档。
db.test.aggregate([
{ "$unwind": "$array" },
{ "$group":
{
"_id": "$title",
"array": {"$push": "$array"}
}
},
{ "$project":
{
"array": 1,
"_id": 0
}
}
])
推荐阅读
- vulas - 为 Vulas 编译 plugin-maven 文件需要很长时间
- javascript - 谷歌脚本隐藏谷歌表格中的行
- swift - 如何在 Swift 中使用 NSUserDefaults
- flutter - 视频播放器初始化颤振问题
- jakarta-ee - Netbeans 8.2 未制作 Java EE 应用程序
- jquery - 如何将多个 Ajax 调用合并到一个代码片段中?
- woocommerce - 我的迷你购物车没有删除 woocommerce 中的图像
- highcharts - 如何禁用出现在 Highcharts 中没有数据的圆圈?
- powerbi - IErrorInfo.GetDescription 失败,出现 E_FAIL(0x80004005
- android - 如何在 ViewHolder 中取消注册 LocalBroadcastManager?