Mongodb 连接mongo文档中的所有数组字段
考虑一下,我们有一份如下的文件Mongodb 连接mongo文档中的所有数组字段,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,考虑一下,我们有一份如下的文件 { "name" : "ABC", "destination" : { "id" : "123", "place": "xyz" }, "elements": [ { "_id": "123", "name": "abc", "minorElements": [ [{}, {}, {
{
"name" : "ABC",
"destination" : {
"id" : "123",
"place": "xyz"
},
"elements": [
{
"_id": "123",
"name": "abc",
"minorElements": [
[{}, {}, {}, .....{}],
[{}, {}, {}, .....{}],
...
],
"majorElements": [
[{}, {}, {}, .....{}],
[{}, {}, {}, .....{}],
...
]
}
]
}
如何编写mongo db聚合来连接所有数组字段并创建一个结果文档,如:
"name" : "ABC",
"destination" : {
"id" : "123",
"place": "xyz"
},
{
"elements": [{}, {}, {}, ..... {} ]
// elements contains all minorElements + majorElements + ...
}
这符合你的要求吗
db.collection.aggregate([
{
$addFields: {
elements: {
$reduce: {
input: "$elements",
initialValue: [],
in: {
$let: {
vars: {
elem: "$$this"
},
in: {
$reduce: {
input: {
$objectToArray: "$$elem"
},
initialValue: [],
in: {
$concatArrays: [
"$$value",
{
$cond: [
{
$isArray: "$$this.v"
},
"$$this.v",
[]
]
}
]
}
}
}
}
}
}
}
}
}
])
“元素”是文档中的一个字段。请检查更新的问题。在这种情况下,输入:{$objectToArray:$$ROOT}不起作用@瓦利洪