1 insert()方法
1.1 语法
db.COLLECTION_NAME.insert(document)
insert()方法可以插入单个文档,也可以传递文档数组一次性插入多个文档,一次性插入多个文档是原子性的,有一条失败就会导致全部失败。
1.2 示例
一次插入一个文档:
db.mycol.insert({
_id: 1,
name: '小明',
age: 18,
sex: 0
})
传递文档数组一次插入多个文档:
db.mycol.insert([{
_id: 2,
name: '小明',
age: 18,
sex: 0
},{
_id: 3,
name: '小明',
age: 18,
sex: 0
},{
_id: 4,
name: '小明',
age: 18,
sex: 0
}])
1.3 说明
- 要插入的集合如果数据库中不存在,mongodb首先会自动创建该集合,然后把文档插入到新创建的集合中。
- 在插入的文档中,如果不指定_id参数,那么 MongoDB 会为此文档分配一个唯一的ObjectId。
- _id为集合中的每个文档唯一的12个字节的十六进制数。 12字节划分如下 :
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
2 save()方法
save()方法和insert()方法的一样,区别如下:
* 单个文档插入时,如果存在相同ID,save方法会执行覆盖原来文档,insert操作会报错
* 多个文档批量插入时,如果存在相同ID,save方法和insert方法一样,都会报错
3 insertOne()方法
3.1 语法
db.collection.insertOne(document)
- db.collection.insertOne()方法将单个文档插入到集合中。
- 如果文档没有指定_id字段,MongoDB会自动将_id字段与ObjectId值添加到新文档。
- db.collection.insertOne()方法返回包含新插入的文档的`_id“`字段值的文档。
3.2 示例
db.inventory.insertOne({
_id: 1,
name: '小明',
age: 18,
sex: 0
})
结果:
{
"acknowledged" : true,
"insertedId" : 1.0
}
4 insertMany()方法
4.1 语法
db.collection.insertMany(文档数组)
- db.collection.insertMany()方法将多个文档插入到集合中。
- 如果文档没有指定_id字段,MongoDB会向每个文档添加一个ObjectId值的_id字段。
- insertMany()返回包含新插入的文档_id字段值的文档。
4.2 示例
db.collection.insertMany([{
_id: 2,
name: '小明',
age: 18,
sex: 0
},{
_id: 3,
name: '小明',
age: 18,
sex: 0
},{
_id: 4,
name: '小明',
age: 18,
sex: 0
}])
结果:
{
"acknowledged" : true,
"insertedIds" : [
2.0,
3.0,
4.0
]
}