簡體   English   中英

如何更新文檔數組中的對象(mongodb)

[英]How to update objects in document's array (mongodb)

假設我有以下文件:

 { name: 'any-name', array: [ { _id: 'any-id', a: 'any-a-data', b: 'any-b-data', c: 'any-c-data' }, ...more objects ] }

我想調用 updateOne 方法並使用 _id = 'any-id' 更新數組中的整個 object,並使用以下 object

 { a: 'new-a-data', b: 'new-b-data', c: 'new-c-data' }

所以結果將是:

{
  name: 'any-name',
  array: [
    { _id: 'any-id', a: 'new-a-data', b: 'new-b-data', c: 'new-c-data' },
    ...more objects
  ]
}

我嘗試類似:

 model.updateOne( { 'array._id': _id }, { $set: { 'array.$': data } } )

數據 = { a: 'new-a-data', b: 'new-b-data', c: 'new-c-data' }

有人能幫我嗎?

您需要在更新文檔之前解析新數據:

var { newA, newB } = data;

Model.updateOne({ 'array._id': 'any-id' }, {
    '$set': {
        'array.$.a': newA,
        'array.$.b': newB
    }
})
.then((data) => { console.log(data); res.redirect('/') })
.catch((err) => res.status(500).send("Error: ", err));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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