輸入資料:
[
{
"links": true,
"loggedIn": true
},
{
"booking": {
"id": "3787847847",
"details": {
"time": "2021-10-26 11:30:00.000Z",
"venue": "LHR Airport"
},
"results": [
{
"name": "ABC",
"loggedIn": true
},
{
"name": "DEF",
"loggedIn": false
}
]
}
},
{
"booking": {
"id": "000000000",
"details": {
"time": "2021-10-29 12:29:00.000Z",
"venue": "Singapore Changi Airport"
},
"results": [
{
"name": "XYZ",
"loggedIn": true
}
]
}
}
]
結果陣列只需要包含“預訂”或沒有“鏈接”的物件。如果有兩個單獨的“結果”,它們將需要用它們自己的“詳細資訊”值分開,最好用索引分開。
預期輸出:
[
{
"id": "3787847847",
"index": 0,
"details": {
"time": "2021-10-26 11:30:00.000Z",
"venue": "LHR Airport"
},
"name": "ABC",
"loggedIn": true
},
{
"id": "3787847847",
"index": 1,
"details": {
"time": "2021-10-26 11:30:00.000Z",
"venue": "LHR Airport"
},
"name": "DEF",
"loggedIn": false
},
{
"id": "000000000",
"index": 0,
"details": {
"time": "2021-10-29 12:29:00.000Z",
"venue": "Singapore Changi Airport"
},
"name": "XYZ",
"loggedIn": true
}
]
這是可能的嗎?我是 Mongo 的新手,所以即使是一個起點也會非常有幫助!我嘗試使用 filter() 進行聚合,但我不確定如何根據內部“結果”陣列創建單獨的物件。
編輯: $unwind 可以完成這項作業,但我想要一個唯一的值,例如每個具有相同 ID 的物件的索引。
uj5u.com熱心網友回復:
$unwind 和 includeArrayIndex
db.collection.aggregate([
{
"$unwind": {
path: "$booking.results",
includeArrayIndex: "arrayIndex"
}
}
])
mongoplayground
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/339374.html
