MongoDB insert与save区别

MongoDB insert与save区别

MongoDB 中,我们需要插入一条记录,既可以使用 insert 方法还可以使用 save 方法。他们的具体区别如下:

使用 save 函数里,如果原来的对象不存在,那他们都可以向 collection 里插入数据,如果已经存在,save 会调用 update 更新里面的记录,而 insert 则会忽略操作。

insert 可以一次性插入一个列表,而不用遍历,效率高, save 则需要遍历列表,一个个插入。

案例

我们首先,使用 mongo 命令,连接上数据库,具体命令如下:

mongo

如下图所示:

16_mongodb insert与save区别.png

现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:

use haicoder

现在,我们使用 insert 插入一条记录,并指定主键 _id 的值,具体命令如下:

db.haicoder.insert({"_id":1, "name":"haicoder", "url":"www.haicoder.net"})

执行完毕后,此时,如下图所示:

17_mongodb insert与save区别.png

我们看到,此时提示我们成功插入了一条记录,因此,此时的 _id 的值不存在,现在,我们再次插入同样的一条记录,执行完毕后,如下图所示:

18_mongodb insert与save区别.png

我们看到,此时提示我们插入失败,因为主键的值已经存在了,所以不能插入,现在,我们修改为使用 save 插入,具体命令如下:

db.haicoder.save({"_id":1, "name":"haicoder", "url":"www.haicoder.net"})

执行完毕后,此时,如下图所示:

19_mongodb insert与save区别.png

我们看到,此时提示我们成功插入了,因为,save 方法如果主键存在,则直接更新,否则,直接插入,因此,这里不会报错。

MongoDB insert与save区别总结

在 MongoDB 中,我们需要插入一条记录,既可以使用 insert 方法还可以使用 save 方法。他们的具体区别如下:

使用 save 函数里,如果原来的对象不存在,那他们都可以向 collection 里插入数据,如果已经存在,save 会调用 update 更新里面的记录,而 insert 则会忽略操作。

insert 可以一次性插入一个列表,而不用遍历,效率高, save 则需要遍历列表,一个个插入。