簡體   English   中英

Mongoose沒有更新嵌入式文檔

[英]Mongoose not updating embedded document

我在嘗試更新mongodb中的嵌入式文檔時遇到了一個問題。 我已經嘗試了兩種方法,但都沒有工作,而且我已經到處查找了為什么它沒有更新的原因。 無論如何,我的架構看起來像這樣(我可能會注意到我正在嘗試更新的嵌入式文檔是混合類型)。

var UserModel = new mongoose.Schema({
    account: String,
    salt: String,
    password: String,
    highlight_words: String,
    networks: {},
    ip: String,
    ident: String,
    is_connected: Boolean,
    account_type: String
});

我嘗試用這兩段代碼更新“網絡”,但都無法正常工作。 我要把頭發拉出來。

self.userModel.update({account: key}, {networks: self.client_data[key]['networks']}, function(err) {});

並且(注意我已經嘗試添加一個回調到save(),它執行沒有錯誤)

self.userModel.findOne({account: key}, function(err, doc) {
    doc.networks = self.client_data[key]['networks'];
    doc.markModified('networks').save();
});

任何幫助,將不勝感激! 謝謝!

編輯:

問題是,對象就像是{'some.thing': {more: 'stuff'}}顯然它不喜歡。 這是可以理解的!

試試doc.markModified('networks'); 看起來networks是無模式的。 Mongoose無法自動檢測對無模式類型的更改。

您需要完全定義您的架構才能使其正常工作。 例如:

networks {type:“String”}

暫無
暫無

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

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