Ich ein ziemliches Problem, während ich versuche, ein eingebettetes Dokument in mongodb zu aktualisieren. Ich habe zwei Methoden ausprobiert und arbeite nicht, und ich habe überall nach Gründen gesucht, warum dies nicht aktualisiert wird. Jedenfalls sieht mein Schema so aus (ich bemerke, dass das eingebettete Dokument, das ich zu aktualisieren versuche, ein gemischter Typ ist).Mongoose nicht aktualisiert eingebettetes Dokument
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
});
Ich habe versucht, "Netzwerke" mit diesen zwei Codeschnipsel zu aktualisieren und keiner funktioniert. Ich bin dabei, mir die Haare auszuziehen.
self.userModel.update({account: key}, {networks: self.client_data[key]['networks']}, function(err) {});
Und (Anmerkung, die ich habe versucht, einen Rückruf Hinzufügen() zu speichern, und es führt ohne Fehler)
self.userModel.findOne({account: key}, function(err, doc) {
doc.networks = self.client_data[key]['networks'];
doc.markModified('networks').save();
});
Jede mögliche Hilfe würde geschätzt! Vielen Dank!
Edit:
Das Problem war, dass das Objekt wie so {'some.thing': {more: 'stuff'}}
offensichtlich war es nicht mochte. Das ist verständlich!
Was ist der Wert von 'self.client_data [key] [ 'Netzwerken']'? Ersetzen Sie es durch einige Literale, um das Debuggen zu erleichtern. – paulmelnikow
Es ist ein ziemlich großes Objekt, ich weiß aber, dass es bevölkert ist. Ich habe versucht, es durch 'doc.networks = {test: 123};' zu ersetzen, und das das Dokument noch nicht gespeichert hat. – rickibalboa
Auch in der ersten Version, rate ich? Gibt es eine Chance, dass es einfach nicht passt? Funktioniert 'delete ({account: key})? – paulmelnikow