在MONGODB中保存和插入有什么区别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

在MONGODB中保存和插入有什么区别?两者看起来是一样的。

db.users.save({username:"google",password:"google123"})

db.users.insert({username:"google",password:"google123"})
提问于
用户回答回答于

保存VS插入:

在您给定的示例中,行为本质上是相同的。

save如果它是用“_ID“参数

保存,如果文档包含_id,它将在_id字段,如果没有,它将插入。

保存与更新

update修改与查询参数匹配的现有文档。如果没有这样的匹配文档,那么upsert在照片里。

  • upsert : false::如果不存在此类文件,则不会发生任何情况。
  • upsert : true:创建新文档时,其内容等于查询参数和更新参数。

save::不允许任何查询-参数。如果_id存在,并且有一个匹配的文档具有相同的_id它代替了它。当没有_ID指定/不匹配文档,它将文档作为新文档插入。

用户回答回答于

让我们考虑以下两种情况:

1)有_id

2)没有_id。

                        Save ()
                        /     \
                       /       \

                 Having _id     Not Having _id 

  ->In this case save will do    ->  It will do normal insertion 
    upsert to insert.Now             in this case as insert() do.
    what that means, it means 
    take the document and replace 
    the complete document having same
    _id.

让我们考虑这两种情况,以插入:-

1)有文档集_id

2)没有文档集_id。

                        Insert()
                       /        \
                      /          \

   Doc Having _id in collection    Doc Not Having _id 
  ->  E11000 duplicate key     ->Insert a new doc inside the collection.
      error index:       

扫码关注云+社区