MongoDB save插入文档

MongoDB save插入文档

MongoDB 中,save 方法用于插入数据到文档中,功能是类似于 insert 方法的。save 方法有更新和插入两种功能,到底是插入还是更新文档取决于 save 的参数。

决定是插入一个文档还是更新,取决于 _id 参数。如果能根据 _id 找到一个已经存在的文档,那么就更新。如果没有传入 _id 参数或者找不到存在的文档,那么就插入一个新文档。

MongoDB save插入文档详解

语法

db_name.collection_name.save( <document>, { writeConcern: <document> } )

参数

参数 描述
db_name 数据库名
collection_name 集合名
document 需要插入的文档
writeConcern 参数表示自定义写出错的级别,是一种出错捕捉机制

说明

使用 save 方法插入记录时,会根据 _id 是否存在,而做插入或者更新。

案例

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

mongo

如下图所示:

08_mongodb插入文档save.png

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

use haicoder

现在,我们直接在未创建的表 haicoder 里面插入记录,具体命令如下:

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

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

09_mongodb插入文档save.png

我们看到,此时提示我们成功插入了一条记录,现在,我们使用 find 查看该条记录,具体命令如下:

db.haicoder.find()

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

10_mongodb插入文档save.png

现在,我们再次使用 save 插入一条记录,并指定 id,具体命令如下:

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

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

11_mongodb插入文档save.png

我们看到,此时提示我们更新了一条记录,而不是插入了一条记录,因此,该 _id 已经存在了,现在,我们再次使用 find 查看该记录,执行完毕后,如下图所示:

12_mongodb插入文档save.png

我们看到,该记录已经被成功更新了。

MongoDB save插入文档总结

在 MongoDB 中,save 方法用于插入数据到文档中,功能是类似于 insert 方法的。save 方法有更新和插入两种功能,到底是插入还是更新文档取决于 save 的参数。

决定是插入一个文档还是更新,取决于 _id 参数。如果能根据 _id 找到一个已经存在的文档,那么就更新。如果没有传入 _id 参数或者找不到存在的文档,那么就插入一个新文档。