Node.js doc.save()不工作mongoose

Node.js doc.save()不工作mongoose,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我在mongoose中有一个非常基本的用户模型。看起来像这样 var userSchema = new mongoose.Schema({ name: String, email: String, username: String, message: { active {type: Boolean, default: false}, text: String } }); 当用户请求某个页面时,我使用findOne为用户获取数据 UserMo

我在mongoose中有一个非常基本的用户模型。看起来像这样

var userSchema = new mongoose.Schema({
   name: String,
   email: String,
   username: String,
   message: {
      active {type: Boolean, default: false},
      text: String
   }
});
当用户请求某个页面时,我使用findOne为用户获取数据

UserModel.findOne({username: matchLowerCase(req.session.user)}, function (err, doc)
{
    if (doc)
    {
        res.render('main', {
            username: doc.username,
            //etc
        });
    }
});
用户加载页面后,我想将“message”键设置为非活动状态,如下所示

doc.message = {
    active: false,
    text: ''
}
doc.markModified('message');
doc.save(function (err)
{
    console.log('save err', err);
});

无论出于何种原因,doc.save()都不会更新消息键。如果我修改脚本中的任何其他字段,doc.save()将起作用。我遗漏了什么?

如果复制/粘贴,则在
active:{
中遗漏了冒号。不幸的是,这并不是那么简单。我通过在重新渲染文档之前更新文档并将所需的值保存在另一个变量中,粗略地修复了它。不知道为什么它会这样工作。
doc.markModified(“message.active”)