在 MongoDB 中,save 方法用于插入数据到文档中,功能是类似于 insert 方法的。save 方法有更新和插入两种功能,到底是插入还是更新文档取决于 save 的参数。
决定是插入一个文档还是更新,取决于 _id
参数。如果能根据 _id
找到一个已经存在的文档,那么就更新。如果没有传入 _id
参数或者找不到存在的文档,那么就插入一个新文档。
db_name.collection_name.save( <document>, { writeConcern: <document> } )
参数 | 描述 |
---|---|
db_name | 数据库名 |
collection_name | 集合名 |
document | 需要插入的文档 |
writeConcern | 参数表示自定义写出错的级别,是一种出错捕捉机制 |
使用 save 方法插入记录时,会根据 _id
是否存在,而做插入或者更新。
我们首先,使用 mongo 命令,连接上数据库,具体命令如下:
mongo
如下图所示:
现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:
use haicoder
现在,我们直接在未创建的表 haicoder 里面插入记录,具体命令如下:
db.haicoder.save({"name":"HaiCoder", "url":"www.haicoder.net"})
执行完毕后,此时,如下图所示:
我们看到,此时提示我们成功插入了一条记录,现在,我们使用 find 查看该条记录,具体命令如下:
db.haicoder.find()
执行完毕后,此时,如下图所示:
现在,我们再次使用 save 插入一条记录,并指定 id,具体命令如下:
db.haicoder.save({ "_id" : ObjectId("5f617729923e2be937e4b4a2"), "name" : "haicoder", "url" : "www.haicoder.net" })
执行完毕后,此时,如下图所示:
我们看到,此时提示我们更新了一条记录,而不是插入了一条记录,因此,该 _id
已经存在了,现在,我们再次使用 find 查看该记录,执行完毕后,如下图所示:
我们看到,该记录已经被成功更新了。
在 MongoDB 中,save 方法用于插入数据到文档中,功能是类似于 insert 方法的。save 方法有更新和插入两种功能,到底是插入还是更新文档取决于 save 的参数。
决定是插入一个文档还是更新,取决于 _id
参数。如果能根据 _id
找到一个已经存在的文档,那么就更新。如果没有传入 _id
参数或者找不到存在的文档,那么就插入一个新文档。