CRUD之C--创建
本文最后更新于 2025年4月17日 早上
MongoDB的创建命令主要是Insert
这个关键词,具体来说有insertOne
,insertMany
,insert
这三个。顾名思义,insertOne
是插入一个文档,insertMany
是插入多个文档,insert
则是插入的本义,可以一个也可以多个。
MongoDB插入文档时,有一个特殊字段是`_id`用于作为主键,以上三个命令如果不指定`_id`,则会默认插入一个类型为`ObjectID`的值作为`_id`的字段值。
关于插入,官方也有相应的文档(可能要科学上网)做介绍,以MongoDB的4.4版为例,点击访问插入文档。
基本方法
insertOne
语法
1 |
|
第一个参数是单个文档,第二个参数是可选项,其中WriteConcert
默认值似乎与acknowledge
有关,而关于这个acknowledge
是啥,目前我还不太清楚。
返回值
返回一个文档,包含两个信息,一是acknowledged
的布尔值,一个是插入的数据的_id
字段值。
insertMany
语法
1 |
|
第一个参数是数组了,这点与insertOne
不同,第二个参数也是可选项,其中的writeConcern
与insertOne
一样,而ordered
则是指示是否是按顺序插入,它的影响是如果插入的多个文档中有一个无法插入(比如_id字段冲突了),是否影响其他的文档的插入。true则可能影响(因为按顺序插入),false则不影响。
返回值
返回一个文档,包含两个信息,一个是acknowledged
的布尔值,一个是一个_id数组,包含所有成功插入的文档的_id值。
insert
语法
1 |
|
两个参数,第一个参数既可以是单个文档,也可以是一个文档数组;第二个参数与insertMany相似。
返回值
根据插入的类型不同返回不同的结果。
单个文档,返回插入的数据,1为插入成功,0为失败。比如:
1 |
|
多个文档,返回一个BulkWriteResult
,反馈插入情况。比如:
1 |
|
其他涉及到插入的方法
使用特殊参数后
有一些方法会有upsert
参数,当值为true
时则会产生插入效果,这些方法有:
db.collection.update()
db.collection.updateOne()
db.collection.updateMany()
db.collection.findAndModify()
db.collection.findOneAndUpdate()
db.collection.findOneAndReplace()
而一些方法直接就会产生写入效果,这些方法有:
db.collection.save()
db.collection.bulkWrite()