簡體   English   中英

通過變量索引更新mongoDB文檔中的數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM