[英]mongodb : add new property to each object of an array property of every document
我在 mongo 中有以下集合:
// document 1
{
elements:[
{
prop1:true,
prop2:false,
},
{
prop1:true,
prop2:false,
}
]
},
// document 2
{
elements:[
{
prop1:true,
prop2:false,
},
{
prop1:true,
prop2:false,
}
]
}
我想通過以下方式更新每個文檔的元素集合的每個元素:
我想添加property3:true來獲得:
// document 1
{
elements:[
{
prop1:true,
prop2:false,
prop3:true -> added property
},
{
prop1:true,
prop2:false,
prop3:true -> added property
}
]
},
// document 2
{
elements:[
{
prop1:true,
prop2:false,
prop3:true -> added property
},
{
prop1:true,
prop2:false,
prop3:true -> added property
}
]
}
我嘗試使用位置運算符,但它只更新了每個文檔的元素集合的第一個元素:
await db.collection('MyCollection').updateMany(
{
elements: { $exists: true },
},
{
$set: {
'elements.$.property3': true,
},
}
)
我嘗試使用匹配,但它沒有更新任何內容:
await db.collection('MyCollection').updateMany(
{
elements: {
$elemMatch: {
prop1: {$exists:true},
},
},
},
{
$set: {
'prop3': false,
},
}
)
在此先感謝您的幫助
對elements.$[].property3
使用$[]
所有位置運算符。
db.collection.updateMany({
elements: {
$exists: true
},
},
{
$set: {
"elements.$[].property3": true
},
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.