在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页面上还会有更多的操作符感兴趣。