我想從這個檔案中去:
{
_id: 1,
property: "a",
children: [
{ _id: 2, property: "b" },
{ _id: 3, property: "c" }
]
}
對此:
{ _id: 1, property: "a" }
{ _id: 2, property: "b" }
{ _id: 3, property: "c" }
使用 MongoDB 聚合函式。我還沒有找到合適的東西。$unwind最接近,但并不完全導致預期的結果。
uj5u.com熱心網友回復:
您可以使用聚合框架來做到這一點:
$concatArrays- 將新屬性從父物件添加到子陣列$project- 只回傳子陣列$unwind- 將子陣列展開到多個檔案$replaceRoot- 將檔案的根目錄替換為children屬性
db.collection.aggregate([
{
"$project": {
"_id": 0,
"children": {
"$concatArrays": [
"$children",
[
{
"_id": "$_id",
"property": "$property"
}
]
]
}
}
},
{
"$unwind": "$children"
},
{
"$replaceRoot": {
"newRoot": "$children"
}
}
])
作業示例
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/430439.html
