MongoDB 基础教程

MongoDB 高级教程

MongoDB 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/mongodb-insert-document.html

MongoDB 添加数据(插入/创建文档)的操作方法详解


插入是向 MongoDB 中添加数据的基本方法。MongoDB 主要使用 db.collection.insert() 方法向目标集合创建文档。早期版本可以使用 db.collection.save(),但现已废弃。

插入文档

insert 方法

插入方法 insert 即可以插入单条文档,也可以进行批量插入操作,语法如下:

db.collection.insert(
   <document or array of documents>,
   {
     writeConcern: <document>,
     ordered: <boolean>
   }
)

参数各选项意义如下:

参数 类型 描述
document document or array 要插入的单个文档或文档数组。
writeConcern document 可选项,针对写操作的性能和安全进行设置,让用户根据业务权衡。
ordered boolean 可选项,是否遵循指定的文档顺序进行插入操作。

单个文档插入的示例:

-> db.products.insert( { _id: 10, item: "box", qty: 20 } )

当然也可以不指定主键 _id,这样 MongoDB 会自动生成主键:

-> db.products.insert( { item: "box", qty: 20 } )

插入单个文档

MongoDB 在 3.2 版本开始,针对单个文档插入提供了专有的方法 db.collection.insertOne()

db.collection.insertOne(
   <document>,
   {
      writeConcern: <document>
   }
)

insert 方法不同的是,一是文档数据只能填写一条,二是少了 ordered 参数。

下例等同于上面的 insert 方法插入示例:

-> db.products.insertOne( { _id: 10, item: "box", qty: 20 } )

批量插入文档

如果要向集合中插入多个文档,使用批量插入会快一些。使用批量插入,可以将一组文档传递给 MongoDB。

MongoDB 在 3.2 版本开始,新增了专门的批量插入方法 db.collection.insertMany()

语法和 insert 方法一样,只是文档需要指定多个,以数组形似给出:

db.collection.insertMany(
   [ <document 1> , <document 2>, ... ],
   {
      writeConcern: <document>,
      ordered: <boolean>
   }
)

示例如下:

-> db.products.insertMany( [
      { _id: 10, item: "large box", qty: 20 },
      { item: "small box", qty: 55 },
      { item: "medium box", qty: 30 }
   ] )

从 MongoDB 3.6 开始,默认配置最大的批量插入条数是 100000,可以通过 isMaster.maxWriteBatchSize 修改。

MongoDB 删除文档主要使用 db.collection.remove()、db.collection.deleteOne() 或 db ...
MySQL 插入数据操作使用 INSERT INTO 语句,它属于 DML(数据操作语言)范畴,该语句插入方式支持从简单的添加操作到唯一键( ...
索引是为了高效查询所设置,MongoDB 也不例外,它支持不同形式的索引,创建索引使用 db.collection.createIndex( ...
在 MongoDB 中没有像关系型数据库那样的表的概念,取而代之的是集合(collection),创建集合采用 db.createColle ...
MongoDB 删除所有满足条件的集合文档数据操作使用 db.collection.deleteMany() 命令。 ...