Tengo un problema importante mientras intento actualizar un documento incrustado en mongodb. Intenté con dos métodos y ninguno de ellos funcionó, y busqué en todas partes las razones por las cuales no se actualiza. De todos modos, mi esquema se ve así (puedo notar que el documento incrustado que estoy tratando de actualizar es de tipo Mixto).Mongoose no está actualizando el documento incrustado
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
});
He intentado actualizar 'redes' con estos dos fragmentos de código y ninguno funciona. Estoy a punto de sacarme el pelo.
self.userModel.update({account: key}, {networks: self.client_data[key]['networks']}, function(err) {});
Y (nota que he intentado añadir una devolución de llamada a save(), y se ejecuta sin errores)
self.userModel.findOne({account: key}, function(err, doc) {
doc.networks = self.client_data[key]['networks'];
doc.markModified('networks').save();
});
se agradecería cualquier ayuda! ¡Gracias!
Editar:
El problema era que el objeto era igual que {'some.thing': {more: 'stuff'}}
es obvio que no le gustaba el. lo cual es comprensible!
¿Cuál es el valor de 'self.client_data [clave] [ 'redes']'? Intente reemplazarlo con algunos literales para ayudar a su depuración. – paulmelnikow
Es un objeto bastante grande, aunque sé que está poblado. Intenté reemplazarlo con 'doc.networks = {test: 123};' y aún así no guardé el documento ... – rickibalboa
En la primera versión también, supongo? ¿Hay alguna posibilidad de que no coincida con nada? ¿Funciona 'delete ({account: key})'? – paulmelnikow