猫鼬findOneAndUpdate不保存

时间:2018-10-09 03:50:37

标签: mongodb mongoose

我现在正在尝试使用.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
 }
});

1 个答案:

答案 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)最有可能引起您的问题。

相关问题