是否可以在Mongoose文档中更新对象?

时间:2018-06-16 05:30:40

标签: javascript node.js mongoose

我和猫鼬有一个奇怪的问题,我开始怀疑我做错了什么。

我的架构看起来像这样:

var personSchema = mongoose.Schema({
  name: String, // Self-e
  info: { type: Object, default: {'value':'result'} },
  created_on: { type: Date, default: Date.now }
})

获取文档后,我试图像这样编辑info对象(假装person是获取的文档):

person.info['value2'] = 'result2'
person.save()

这些更改未显示在数据库中,运行时我没有收到任何错误。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

正如我从@ippi那里了解到的那样,因为info是一个混合对象,你需要确保Mongoose知道它已被修改,以便在你调用person.save()时保存它

例如:

person.info['value2'] = 'result2'
person.markModified('info')
person.save()