我有以下資料陣列:
{
_id: 5f5726ef7d475a61a95c5e0c,
attributes: [
{
values: [
{ name: '1' }
],
},
{
values: [
{ name: '2' }
]
}
],
attr1: [
{ name: "Study Code" },
{ name: "Patient Study" }
]
}
我需要的是根據索引為每個attr1物件添加對應的值。所以結果是:
{
_id: 5f5726ef7d475a61a95c5e0c,
attributes: [
{
values: [
{ name: '1' }
],
},
{
values: [
{ name: '2' }
]
},
],
attr1: [
{
name: "Study Code",
values: [{ name: "1" }]
},
{
name: "Patient Study",
values: [{ name: "2" }]
}
],
}
我想知道這是否可能$addFields在 MongoDB中使用聚合
uj5u.com熱心網友回復:
詢問
- 如果陣列大小相同,則查詢有效
- ziparray 制作
[[member1_1 member2_1], ....] - 映射以將 member1_1,member2_1 合并到檔案
玩蒙哥
aggregate(
[{"$set": {"attr1": {"$zip": {"inputs": ["$attributes", "$attr1"]}}}},
{"$set":
{"attr1":
{"$map":
{"input": "$attr1",
"in":
{"$mergeObjects":
[{"$arrayElemAt": ["$$this", 1]},
{"$arrayElemAt": ["$$this", 0]}]}}}}}])
uj5u.com熱心網友回復:
您可以使用$zip
db.collection.aggregate([
{
"$project": {
attributes: {
"$zip": {
"inputs": [
"$attributes",
"$attr1"
]
}
}
}
}
])
這是Mongo游樂場供您參考。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/467807.html
標籤:javascript mongodb 猫鼬 mongodb查询 聚合框架
下一篇:重繪后資料未定義
