MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mangusto não salva objeto aninhado


Me deparei com essa situação frustrante e fiquei um pouco surpreso com a solução documentada do site da Mongoose.

então o que isso significa é salvar as propriedades de array/objeto aninhadas (Item no seu caso), você precisa ser explícito ao especificar a mudança .markModified('Item')
var objectToSave = new ModelToSave({
  _id : req.params.id, 
  Item : customObject
});
objectToSave.markModified('Item');
objectToSave.save();

Como é um tipo sem esquema, você pode alterar o valor para qualquer outra coisa que desejar, mas o Mongoose perde a capacidade de detectar automaticamente e salvar essas alterações. Para "dizer" ao Mongoose que o valor de um tipo Mixed foi alterado, chame o método .markModified(path) do documento passando o caminho para o tipo Mixed que você acabou de alterar.

-- http://mongoosejs.com/docs/schematypes.html#mixed