MongoDB插入文档

db.collection.insertOne() 插入单个文档。
db.collection.insertMany() 插入多个文档。
db.collection.insert() 插入单/多个文档。
 

 

 

insert()方法

要将数据插入到 MongoDB 集合中,需要使用 MongoDB 的 insert()或save()方法。

语法

insert()命令的基本语法如下:

>db.COLLECTION_NAME.insert(document)
 

示例

>db.mycol.insert({
   _id: 100,
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'yiibai tutorials',
   url: 'http://www.yiibai.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100,
})


这里mycol是集合的名称,在前一章中所创建的。如果数据库中不存在集合,则MongoDB将创建此集合,然后将文档插入到该集合中。

在插入的文档中,如果不指定_id参数,那么 MongoDB 会为此文档分配一个唯一的ObjectId。

_id为集合中的每个文档唯一的12个字节的十六进制数。 12字节划分如下

_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)


要在单个查询中插入多个文档,可以在insert()命令中传递文档数组。如下所示  -

> db.post.insert([{
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'tutorials point',
   url: 'www.tutorialspoint.com',
   tags: 'database',
   likes: 100},
   {
   title: 'MongoDB Overview2', 
   description: 'MongoDB is no sql database2',
   by: 'tutorials point2',
   url: 'www.tutorialspoint.com2',
   tags: 'database2',
   likes: 200}
   ])


要插入文档,也可以使用db.post.save(document)。 如果不在文档中指定_id,那么save()方法将与insert()方法一样自动分配ID的值。如果指定_id,则将以save()方法的形式替换包含_id的文档的全部数据。


db.collection.insertOne()方法

db.collection.insertOne()方法将单个文档插入到集合中。以下示例将新文档插入到库存集合中。 如果文档没有指定_id字段,MongoDB会自动将_id字段与ObjectId值添加到新文档。


db.inventory.insertOne({ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } })
 

db.collection.insertOne()方法返回包含新插入的文档的`_id` 字段值的文档。

执行结果如下  

> db.inventory.insertOne(
{ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)
{
"acknowledged" : true,
"insertedId" : ObjectId("5955220846be576f199feb55")
}
 
 

db.collection.insertMany()方法

db.collection.insertMany()方法将多个文档插入到集合中,可将一系列文档传递给db.collection.insertMany()方法。以下示例将三个新文档插入到库存集合中。如果文档没有指定_id字段,MongoDB会向每个文档添加一个ObjectId值的_id字段。

db.inventory.insertMany([
{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])
 

insertMany()返回包含新插入的文档_id字段值的文档。执行结果如下 -

> db.inventory.insertMany([
{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("59552c1c46be576f199feb56"),
ObjectId("59552c1c46be576f199feb57"),
ObjectId("59552c1c46be576f199feb58")
]
}




Bulk Insert方式

db.runCommand( 
{ 
insert: "users", 
documents: [ 
{ _id: 1, user: "hao121", status: "0" }, 
{ _id: 2, user: "hao122", status: "1" }, 
{ _id: 3, user: "hao123", status: "2" } 
]
} 
) 
原文地址:https://www.cnblogs.com/l10n/p/7372126.html