Mongoose/Mongodb 使用 $set 与仅在更新查询中设置值

den*_*xic 5 mongoose mongodb

更新 mongodb/mongoose 中的值时,使用以下命令之间是否有区别$set

await Users.findOneAndUpdate({_id:"xxx"},{$set: {name:"Denis"} })
Run Code Online (Sandbox Code Playgroud)

并像这样设置它:

await Users.findOneAndUpdate({_id:"xxx"},{name:"Denis"})
Run Code Online (Sandbox Code Playgroud)

谢谢。

Cuo*_*goc 8

文档中,它提到:

默认情况下,如果您在 doc 中不包含任何更新运算符,Mongoose 将为$set您包装 doc。这可以防止您意外覆盖文档。

因此,除非您在选项中指定,否则没有区别overwrite: true