插入方法
db.collection.insertOne() |
插入单条文档到集合中
|
db.collection.insertMany() |
插入多条文档到集合中 |
db.collection.insert() |
插入单条或多条文档到集合中
|
insertOne() 语法格式
db.collection.insertOne( <document>,{ writeConcern: } )
只能传一个文档,不能是数组
insertMany() 语法格式
db.collection.insertMany( [ <document 1>,<document 2>,... ]<boolean } )
必传一个数组,即使是空数组
insert() 语法格式
db.collection.insert( <document or array of documents } )
可以传单条文档或者文档数组
writeConcern
看着是一种出错捕捉机制,搞清楚要干嘛再更新吧
ordered
- true:对数组中的文档执行有序插入,其中一个文档发生错误,MongoDB 将返回而不处理数组中的其余文档(默认)
- false:无序插入,其中一个文档发生错误,则继续处理数组中的其他文档
三种 insert 方法的返回内容
// 插入单条文档 > db.test.({}) WriteResult({ "nInserted" : 1 }) 插入多条文档 insert([]) BulkWriteResult({ "writeErrors" : [ 0 })
插入操作的重点知识
- MongoDB 向集合里插入记录时,无须事先对数据存储结构进行定义,每个文档的数据结构都可以是不同的
- 如果待插入的集合不存在,则插入操作会默认创建集合
- MongoDB 中,插入操作以单个集合为目标
- MongoDB 中的所有写入操作都是单个文档级别的原子操作
插入不指定 _id 字段的文档
db.test.insert( { item : "card",qty : 15 })
MongoDB 会自动给它分配一个 _id
db.test.find() { "_id" : ObjectId("60b4e2eeec0fd33d89e97a98"),"item" : "card","qty" : 15 }
这些 Objectld 值与执行操作时的机器和时间有关
插入指定 _id 字段的文档
值 _id 必须在集合中唯一,以避免重复键错误
db.test.( { _id: 10,item: "box",qty: 20 } ) db.test.find() { "_id" : 20 }
可以看到新插入文档的 id 值为设置的 id 值
插入文档数组
插入的多个文档无须具有相同的字段
db.test1.( { _id: 11,item: "pencil",qty: 50,type: "no.2" },{ item: "pen",qty: 20 },{ item: "eraser",qty: 25 } )
- 的第一个文档包含一个 _id 字段和一个 type 字段
- 第二个和第三个文档不包含 _id 字段
- 因此,在插入过程中,MongoDB 将会为第二个和第三个文档创建默认 _id 字段
db.test1.find() { "_id" : 11,"item" : "pencil","qty" : 50,"type" : "no.2" } { "_id" : ObjectId("60b4e98fec0fd33d89e97a99"),"item" : "pen",1)"> } { "_id" : ObjectId("60b4e98fec0fd33d89e97a9a"),"item" : "eraser",1); font-weight: bold">25 }
无序插入
db.products.( { _id: 20,item: "lamp",type: "desk" },{ _id: 21,qty: 20,type: "floor" },{ _id: 22,item: "bulk",qty: 100 } 版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。