[英]update array in mongoDB document by variable index
如何通過索引更新mongoDB文檔中的數組,該數據存儲在變量中?
{
_id: 'IDString',
field: [ bla, bla, old, bla ];
}
let i = 2;
Collection.update(
{ _id: 'IDString' },
{ $set:
{ 'field.$.i': 'new' }
}
);
所以結果應該是:
{
_id: 'IDString',
field: [ bla, bla, new, bla ];
}
我的代碼不起作用,因為我想使用變量 i
。
使用點表示法語法設置更新文檔,因為這將通過從零開始的索引位置訪問數組的元素。 您必須將數組名稱與點(。)和從零開始的索引位置連接起來,並用引號括起來。
因此,在您的示例中,您需要動態設置更新文檔以進行生成
var update = { "$set": { "field.2": "new" } }
以下代碼段顯示了這一點:
var i = 2,
update = { "$set": {} };
update["$set"]["field."+i] = "new";
db.collection.update({ "_id": "IDString" }, update)
Collection.update(
{ _id: 'IDString', field.2 : 1 },
{ $set: {
"field.$" : "new" }
}
)
這應該有用,如果沒有 - 請在下面評論
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.