在阅读Mongo Save and Update时,我对每篇文章都有点混淆
MongoDB的update()和save()方法用于将文档更新到集合中.update()方法更新现有文档中的值,而save()方法用save()方法中传递的文档替换现有文档.
请让我知道两者的区别.
Phi*_*ipp 15
update
更改find-parameters找到的现有文档,并且在没有此类文档时不执行任何操作(除非您使用该upsert
选项).
save
不允许任何查找参数.它会检查是否存在与_id
您保存的文档相同的文档.如果它存在,它将取代它.如果不存在此类文档,则会将文档作为新文档插入.当您插入的文档没有_id
字段时,它会在插入之前生成一个带有新创建的ObjectId 的文档.
collection.save(document);
基本上是一个简写:
if (document._id == undefined) {
document._id = new ObjectId();
}
collection.update({ "_id":document._id }, document, { upsert:true });
Run Code Online (Sandbox Code Playgroud)
从文档中:
save() 方法使用 insert 或 update 命令,这些命令使用默认的写入关注。要指定不同的写入关注点,请将写入关注点包含在 options 参数中。
如果文档不包含 _id 字段,则 save() 方法将调用 insert() 方法。
如果文档包含 _id 字段,则 save() 方法相当于将 upsert 选项设置为 true 并将查询谓词设置为 _id 字段的更新。
如果未指定 upsert
修改集合中的现有文档或文档。该方法可以修改现有文档的特定字段或完全替换现有文档,具体取决于更新参数。
如果 upsert 为 true 并且没有文档与查询条件匹配,则 update() 会插入单个文档。
所以它们非常相似,都可以更新和插入文档。不同的是save只能更新一个文档。
归档时间: |
|
查看次数: |
15785 次 |
最近记录: |