MongoDB 插入文档
要插入数据到 MongoDB 集合,需要使用 MongoDB 的 insert() 或 save() 方法。
语法
insert() 命令的基本语法如下:
>db.COLLECTION_NAME.insert(document)
例如:
db.mycol.insert(
{
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials itcast',
url: 'http://www.itcast.cn',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
}
)
db.mycol.insert(
{
title: 'MySQL Overview',
description: 'MySQL is sql database',
by: 'tutorials itcast',
url: 'http://www.itcast.cn',
tags: ['MySQL', 'database', 'SQL'],
likes: 40
}
)
这里 mycol 是集合的名称,如前面的教程中创建。如果集合在数据库中不存在,那么MongoDB 将创建此集合,然后把它插入文档。
插入文档中,如果我们不指定_id参数,然后MongoDB 本文档分配一个唯一的ObjectId。
> db.mycol.find().pretty()
{
"_id" : ObjectId("57d78d91b1a3e5f874cfe47a"),
"title" : "MongoDB Overview",
"description" : "MongoDB is no sql database",
"by" : "tutorials itcast",
"url" : "http://www.itcast.cn",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
{
"_id" : ObjectId("57d78d98b1a3e5f874cfe47b"),
"title" : "MySQL Overview",
"description" : "MySQL is sql database",
"by" : "tutorials itcast",
"url" : "http://www.itcast.cn",
"tags" : [
"MySQL",
"database",
"SQL"
],
"likes" : 40
}
_id 是12个字节的十六进制数,唯一一个集合中的每个文档。 12个字节被划分如下:
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
要插入单个查询的多个文档,可以传递一个数组 insert() 命令的文件。
db.mycol.insert(
[
{
title: 'sqlserver',
description: 'sqlserver is sql database',
by: 'tutorials itcast',
url: 'http://www.itcast.cn',
tags: ['sqlserver', 'database', 'SQL'],
likes: 40
},
{
title: 'oracle',
description: 'oracle is sql database',
by: 'tutorials itcast',
url: 'http://www.itcast.cn',
tags: ['oracle', 'database', 'SQL'],
likes: 40
}
]
)
insert() 或 save()区别
1. 插入的文档的无_id
save() 方法等同于insert()
方法
db.col.insert(
{
title: 'oracle',
description: 'oracle is sql database',
}
)
db.col.save(
{
title: 'oracle',
description: 'oracle is sql database',
}
)
2. 插入的文档的带有"_id"
如果想插入的数据对象已存在数据集合中,
insert函数会报错,提示E11000 duplicate key error collection
save函数是覆盖原来的对象
db.col.insert(
{
_id : 2016001,
"name" : "guojing"
}
)
db.col.save(
{
_id : 2016001,
"name" : "guojing"
}
)
如果想插入的数据对象不存在数据集合中:
insert和save等同
db.col.insert(
{
_id : 2016002,
"name" : "huangrong"
}
)
db.col.save(
{
_id : 2016003,
"name" : "dongxie"
}
)
插入 在MongoDB insert() 和SQL INSERT 区别
SQL INSERT Statements | MongoDB insert() Statements |
---|---|
INSERT INTO users(user_id,
age,
status)
VALUES ("bcd001",
45,
"A")
|
db.users.insert(
{ user_id: "bcd001", age: 45, status: "A" }
)
|