MongoDB insert()方法:插入数据
MongoDB 向集合里插入记录时,无须事先对数据存储结构进行定义。如果待插入的集合不存在,则插入操作会默认创建集合。
在 MongoDB 中,插入操作以单个集合为目标,MongoDB 中的所有写入操作都是单个文档级别的原子操作。
向集合中插入数据的语法如下:
db.collection.insert( document or array of documents , writeConcern: document , //可选字段 ordered: boolean //可选字段 )
db 为数据库名,如当前数据库名为 test ,则用 test 代替 db,collection 为集合名,insert() 为插入文档命令,三者之间用连接。
参数说明:
如果为 true,在数组中执行文档的有序插入,并且如果其中一个文档发生错误,MongoDB 将返回而不处理数组中的其余文档; 如果为 false,则执行无序插入,若其中一个文档发生错误,则忽略错误,继续处理数组中的其余文档。
db.test.insert( { item : card , qty : 15 })
在插入期间,mongod 将创建 _id 字段并为其分配唯一的 Objectld 值,这里的 mongod 是一个 MongoDB 服务器的实例,也就是 MongoDB 服务驻扎在计算机上的进程。
查看集合文档的代码如下:
db.test.find() { _id :Objectlid( 5bacac84bb5e8c5dff78dc21 ), item : cardn, qty :15 }
这些 Objectld 值与执行操作时的机器和时间有关,因此,用户执行这段命令后的返回值与示例中的值是不同的。
插入指定 _id 字段的文档,值 _id 必须在集合中唯一,以避免重复键错误,代码如下:
db.test.insert( { _id: 10, item: box , qty: 20 } db.test.find() { _id : 10, item : box , qty : 20 }
可以看到新插入文档的 id 值为设置的 id 值。
插入的多个文档无须具有相同的字段。例如,下面代码中的第一个文档包含一个 _id 字段和一个 type 字段,第二个和第三个文档不包含 _id 字段。因此,在插入过程中,MongoDB 将会为第二个和第三个文档创建默认 _id 字段,代码如下:
db.test.insert( { _id: 11, item: pencil , qty: 50, type: no.2 }, { item: pen , qty: 20 }, { item: eraser , qty: 25 } )
查询验证,可以看到在 _id 插入期间,系统自动为第二、第三个文档创建了字段,代码如下:
db.test.find() { _id : 11, item : pencil , qty : 50, type : no.2 } { _id : Objectld( 5bacf31728b746e917e06b27 ), item : pen , qty : 20 } { _id : Objectld( 5bacf31728b746e917e06b28 ), item : eraser , qty : 25 }
用变量方式插入文档,代码如下:
document= ({ name: c语言 , price: 40 }) //document 为变量名. db.test.insert(document)
有序地插入多条文档的代码如下:
db.test.insert([ {_id:10, item: pen , price: 20 }, {_id:12, item: redpen , price: 30 }, {_id:11, item: bluepen , price: 40 } {ordered:true} )
在设置 ordered:true 时,插入的数据是有序的,如果存在某条待插入文档和集合的某文档 _id 相同的情况,_id 相同的文档与后续文档都将不再插入。在设置 ordered:false 时,除了出错记录(包括 _id 重复)外其他的记录继续插入。
MongoDB 3.2 更新后新增以下两种新的文档插入命令如下:
db.collection.insertone ()
db.collection.insertMany()
使用 insertOne() 插入一条文档的代码如下:
db.test.iusertone( { item: card , qty: 15 } );
使用 insertMany() 插入多条文档的代码如下:
db.test.insertMany([ { item: card , qty: 15 }, { item: envelope , qty: 20 }, { item: stamps , qty:30 } ]);
23413.html
C语言goMongoDBQt相关文章
- 如何使用mongoshake实现mongodb数据同步的方法
- 关于单台MongoDB实例开启Oplog的过程详解
- MongoDB实现的动态表单的奇妙之旅(mongodb动态表单)
- 管理MongoDB 日志文件管理:最佳实践(mongodb日志文件)
- 数据分析用MongoDB进行商品数据分析(mongodb商品)
- MongoDB的精彩命令:了解它的强大特性(mongodb常用命令)
- MongoDB: 开启新的数据旅程(mongodb启动)
- 使用MongoDB聚合函数改善数据查询(mongodb聚合函数)
- MongoDB查询失败:数据丢失(mongodb查不到数据)
- MongoDB之集合:令人叹为观止的数据存储方式(mongodb集合)
- MongoDB事务处理机制简介(mongodb事务)
- MongoDB查看索引的技巧(mongodb查看索引)
- 实现高可用的MongoDB复制集(mongodb复制集)
- 如何利用MongoDB实现数据追加?(mongodb追加)
- 从MongoDB表中快速复制数据(mongodb表复制)
- MongoDB自动生成唯一ID的方法(mongodb自增id)
- 持久化MongoDB:用多线程实现数据持久化(mongodb多线程)
- 化MongoDB格式化:优化数据存储(mongodb格式)
- MongoDB:文件存储的实现与利用(mongodb文件存储)
- 使用MongoDB导入TXT文件: 简单步骤详解(mongodb导入txt)
- MongoDB 备份与恢复:保障数据安全(mongodb备份恢复)
- Mongodb集合字段的重要性与优化技巧(mongodb集合字段)
- MongoDB 备份方案:如何有效地保护您的数据?(mongodb备份方案)
- Mongodb解决中文乱码问题的方法详解(mongodb中文乱码)
- MongoDB:安全保护实现数据加密(mongodb 加密)