我的模型是:
GigSchema = new Schema({
lastUpdate: {
type: Date,
"default": null
},
type: {
type: String,
"default": null,
"enum": [null, 'mvp', 'code-review', 'extension', 'existent-code-review', 'internal', 'design']
},
meta: {
type: Object,
"default": {
chats: 0,
phoneCalls: 0,
responseTime: null
}
},
engaged: {
type: Date,
"default": null
}
});
当我执行以下操作时:
Gig.findOne({
_id: data.gig
}).populate(populate).exec(function(err, gig) {
gig.meta.chats += 1;
return gig.save(function(err) {
return console.log(err);
});
});
我正尝试更新“meta”字段,但它实际上没有保存,也没有错误。我做错了什么?
populate
使其正常工作,但是最好利用mongoose已经提供的方法,因为它们非常优化。populate
的目的是允许在 MongoDB 中进行join
操作(就像在 sql 中一样)。 - KairatModel.findOneAndUpdate
。 - Kairat