购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.5.2 插入操作

要将数据插入MongoDB集合中,可以使用 MongoDB的insert()方法,同时MongoDB针对插入一条还是多条数据,提供了更可靠的insertOne()和insertMany()方法。

MongoDB向集合里插入记录时,无须事先对数据存储结构进行定义。如果待插入的集合不存在,则插入操作会默认创建集合。在MongoDB中,插入操作以单个集合为目标,MongoDB中的所有写入操作都是单个文档级别的原子操作。

向集合中插入数据的语法如下:

db为数据库名,如当前数据库名为“test”,则用test代替db,collection为集合名,insert为插入文档命令,三者之间用“。”连接。<document or array of documents>参数表示可设置插入一条或多条文档。writeConcern:<document>参数表示自定义写出错的级别,是一种出错捕捉机制。ordered:<boolean>默认为true,如果为true,在数组中执行文档的有序插入,并且如果其中一个文档发生错误,MongoDB将返回而不处理数组中的其余文档;如果为false,则执行无序插入,若其中一个文档发生错误,则忽略错误,继续处理数组中的其余文档。

插入不指定_id字段的文档的代码如下:

在插入期间,mongod将创建_id字段并为其分配唯一的ObjectId值,这里的mongod是一个MongoDB服务器的实例,也就是MongoDB服务驻扎在计算机上的进程。查看集合文档的代码如下:

这些ObjectId值与执行操作时的机器和时间有关。因此,用户执行这段命令后的返回值与示例中的值是不同的。

插入指定_id字段的文档,值_id必须在集合中唯一,以避免重复键错误,代码如下:

可以看到新插入文档的id值为设置的id值。

插入的多个文档无须具有相同的字段。例如,下面代码中的第一个文档包含一个_id字段和一个type字段,第二个和第三个文档不包含_id字段。因此,在插入过程中,MongoDB将会为第二个和第三个文档创建默认_id字段,代码如下:

查询验证,可以看到在_id插入期间,系统自动为第二、第三个文档创建了字段,代码如下:

用变量方式插入文档,代码如下:

在设置ordered:true时,插入的数据是有序的,如果存在某条待插入文档和集合的某文档_id相同的情况,_id相同的文档与后续文档都将不再插入。在设置ordered:false时,除了出错记录(包括_id重复)外其他的记录继续插入。

MongoDB3.2更新后新增以下两种新的文档插入命令如下:

使用insertOne()插入一条文档的代码如下:

使用insertMany()插入多条文档的代码如下: 9HD/tgtFTHOn4y0av4qwieEdJckLGBh8KwMpsaqRwLrSWTww9z5681sZjQH6erfN

点击中间区域
呼出菜单
上一章
目录
下一章
×