簡體   English   中英

替換貓鼬數組中的對象

[英]Replace object in array in Mongoose

我想使用索引替換數組中的對象,但不會節省任何費用。 這是文檔的樣子:

{
    "_id": {
        "$oid": "58a71ec0c80a9a0436ae2fb1"
    },
    "owner": "contact1@gmail.com",
    "contacts": [
        {
            "work": "",
            "home": "",
            "mobile": "",
            "email": "",
            "company": "",
            "last": "Contact",
            "middle": "",
            "first": "New"
        },
        {
            "first": "Another",
            "middle": "",
            "last": "Contact",
            "company": "",
            "email": "",
            "mobile": "",
            "home": "",
            "work": ""
        }
    ],
    "__v": 1
}

這就是我嘗試過的。

Contacts.findById({_id: "58a71ec0c80a9a0436ae2fb1"}, function(err,document) {
    document.contacts[req.body.indexOfObjectToBeEdited] = req.body.updatedObject
    console.log(document)
    document.save(function(err) {
        return res.json({event:"Updated Contact"})
    })
})

就在document.save()之前我是console.log(document),它反映了正確的更改。 但是當我保存時,mongodb中沒有任何更新,並且我沒有收到任何錯誤。 我應該怎么做?

請嘗試在保存之前立即插入此行。 由於需要修改數組,因此我們需要手動告訴貓鼬它已被修改。

document.markModified("contacts");

查看文檔中的使用說明 ,以獲取更多信息http://mongoosejs.com/docs/schematypes.html

暫無
暫無

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

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