我现在正在尝试使用.findOneAndUpdate
方法和以下代码来更新猫鼬模型:
MyModel.findOneAndUpdate({ _id: "xxxxx", userId: "xxxxx" }, { $set: { completion:"xxxx", date: "xxxxx" } }, { new: true }, function(err, doc) {
if(err) {
return res.json({success: false, message: err.message});
}
res.json({success: true, message: 'success'});
});
当我登录doc
时,它返回更新的模型,但是该模型没有保存到数据库中。任何对此的想法将不胜感激。
型号代码:
var MyModel = new Schema({
name: {
type: String,
required: true
},
date: {
type: Date,
required: true
},
userId: {
type: String,
required: true
},
completion: {
type: Boolean,
required: true
}
});
答案 0 :(得分:0)
根据您发布的代码,问题很少:
1)<bean id="1" class="com.package.javafilename"></bean>
是一个MyModel
对象,您将必须像这样创建一个Schema
对象-
Model
然后使用上面的 var model = mongoose.Model('modelName', MyModel); // where MyModel is a Schema object
对象,可以像在代码中(例如model
)运行findOneAndUpdate
。
2)其次,在model.findOneAndUpdate
模式中,您没有给出集合名称。您可以将其放在schema对象参数后面的options对象中。所以你应该放:
MyModel
如果您不选择上述选项,猫鼬会使用 var MyModel = new Schema({schema object...}, {collection: 'mongodbCollectionName'});
名称创建默认集合。
我相信,如果(1)不存在,则(2)最有可能引起您的问题。