在Mongoose(mongodb node.js)中,如何更新现有值并插入缺失值,而不删除未指定的值?

我试图保持一个瞬时统计块,例如;

model = { id: 123, stats: { fooCount: 117, barCount: 175, bazCount: 654 } } 

…并能够更新现有的logging,但只能指定新的值,如下所示:

 model.update({ '_id': 123, stats: { fooCount: 118 } }); 

…没有吹掉stats的旧价值。 这可能没有写更多的代码在我的更新?

您应该在更新中使用$ set操作符,如下所示:

 var conditions = { _id: 123 }; var update = { $set: { fooCount: 118 }}; var options = { upsert: true }; model.update(conditions, update, options, callback); 

在MongoDB页面上还会有更多的操作符感兴趣。