mongodbの埋め込みドキュメントを更新しようとしていますが、かなり問題があります。私は2つの方法を試してみましたが、どちらもうまくいきませんでした。とにかく、私のスキーマはこのようになります(私が更新しようとしている埋め込みドキュメントは混在型です)。mongooseが埋め込みドキュメントを更新していません
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
});
私はこの2つのコードスニペットで「ネットワーク」を更新しようとしましたが、いずれも動作しませんでした。私は私の髪を引っ張るつもりです。
self.userModel.update({account: key}, {networks: self.client_data[key]['networks']}, function(err) {});
そして、(私は)(保存するコールバックを追加しようとしました、そして、それはエラーなしで実行されることに注意してください)
self.userModel.findOne({account: key}, function(err, doc) {
doc.networks = self.client_data[key]['networks'];
doc.markModified('networks').save();
});
任意の助けいただければ幸いです!ありがとう!
編集:
問題は、オブジェクトがそう{'some.thing': {more: 'stuff'}}
明らかにそれが好きではなかったようだったということでした。それは理解できます!
'self.client_data [キー] [ 'ネットワーク']'の値は何ですか?デバッグに役立つリテラルを置き換えてみてください。 – paulmelnikow
それはかなり大きなオブジェクトですが、私は実際にそれが設定されていることを知っています。私は 'doc.networks = {test:123};に置き換えようとしましたが、それでも文書は保存されませんでした。 – rickibalboa
最初のバージョンでも、私は推測していますか?どんなことにもマッチしないの? 'delete({account:key})'は機能しますか? – paulmelnikow