cri*_*lla 3 mongodb mongodb-query aggregation-framework
假设我们有以下由聚合管道生成的文档:
[
{
"_id": ObjectId("5a934e000102030405000000"),
"description": "description for item 1",
"item_code": "00001"
},
{
"_id": ObjectId("5a934e000102030405000001"),
"description": "description for item 2",
"item_code": "00002"
},
{
"_id": ObjectId("5a934e000102030405000002"),
"description": "description for item 3",
"item_code": "00003"
},
{
"_id": ObjectId("5a934e000102030405000003"),
"extrafield": "extra field for item 2",
"item_code": "00002"
}
]
Run Code Online (Sandbox Code Playgroud)
如何将相同的文档合并item_code为一个,保留所有属性?想要的结果:
[
{
"description": "description for item 1",
"item_code": "00001"
},
{
"description": "description for item 2",
"extrafield": "extra field for item 2",
"item_code": "00002"
},
{
"description": "description for item 3",
"item_code": "00003"
}
]
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的$group模式但没有成功:(
你可以试试,
$groupby item_code,使用$mergeObjectswith合并对象$$ROOT$replaceWith 将根对象替换为根db.collection.aggregate([
{
$group: {
_id: "$item_code",
root: { $mergeObjects: "$$ROOT" }
}
},
{ $replaceWith: "$root" }
])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
328 次 |
| 最近记录: |