根据MongoDB's documentation,调用 save
将创建一个新文档,或者如果提供了 _id
则更新现有文档 . Mongoose的文档是less detailed,并没有考虑它是否会插入或更新 .
我试图使用Mongoose的 save
函数来更新文档,但我一直收到错误:
{“error”:{“name”:“MongoError”,“code”:11000,“err”:“insertDocument ::由:: 11000 E11000引起的重复键错误索引:staging.participants . $ _ id _ dup key: {:ObjectId('5515a34ed65073ec234b5c5f')}“}}
Mongoose的 save
函数是否像MongoDB的 save
函数一样执行upsert,还是执行插入?
1 回答
什么定义
save
将是插入还是更新是isNew
标志,因为你可以see here .当从
find
查询(或其任何变体)返回文档实例时,此标志自动设置为false
. 如果要手动实例化文档,请在保存之前尝试将此标志设置为false:还有一个
init
函数,它将初始化文档和automatically set isNew to false: