Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Mongoose是否允许在文档更新时添加额外字段?_Mongodb_Mongoose - Fatal编程技术网

Mongodb Mongoose是否允许在文档更新时添加额外字段?

Mongodb Mongoose是否允许在文档更新时添加额外字段?,mongodb,mongoose,Mongodb,Mongoose,我最初创建了我的模型,如: var schema = new Schema(){ property1: { type: String }, property2: { type: String } } 创建时,将排除任何其他属性: var myDocument = new Schema({ property1: "hello", property2:"test", property3:{prop:"hey"} } }); // myDocument = { property1: "h

我最初创建了我的模型,如:

var schema = new Schema(){ 
  property1: { type: String },
  property2: { type: String }
}
创建时,将排除任何其他属性:

var myDocument = new Schema({ property1: "hello", property2:"test", property3:{prop:"hey"} } });

// myDocument = { property1: "hello", property2:"test" }
但是,当我执行findOneAndUpdate时,额外的字段将保存到DB

Schema.findOneAndUpdate( property1:"hello", { property3:{prop:"hey"} } })

// In the DB: { property1: "hello", property2:"test", property3:{} } }
如何确保更新时不保存额外字段


我正在考虑使用预处理对象并删除额外字段。。。但我相信有更好的方法。

我不能用Mongoose3.x或4.x复制这一点。你确定你没有使用MongoDB驱动程序吗?我编辑了这个问题:property3是一个对象:property3:{prop:“嘿”}。我再次测试,结果如下:{property1:“你好”,property2:“测试”,property3:{}。如您所见,property3已添加到文档中,但它不应作为模式仅接受property1和property2!你用的是什么版本的猫鼬?你能显示实际的代码吗?在我的package.json中,我发现我的项目使用了3.8.25