gpt4 book ai didi

node.js - 使用 mongoose findOne/save 保存对象不起作用

转载 作者:可可西里 更新时间:2023-11-01 09:24:14 25 4
gpt4 key购买 nike

我的模型是:

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 应用于获取对其他集合中文档的引用。参见 http://mongoosejs.com/docs/populate.html

如果您只想更新文档中的字段,您可以执行以下操作:

Gig.findOne({_id: data.gig},  function (err, gig) {
gig.meta.chats += 1;
gig.save(function(err){
console.log(err);
})
})

或者你也可以使用Model.findOneAndUpdate

Gig.findOneAndUpdate({_id: data.gig}, { $inc: { meta.chats : 1 }}, {new: true}, function(err, doc){
if (err){
console.log(err);
}
})

关于node.js - 使用 mongoose findOne/save 保存对象不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37864553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com