一、文档(Document)是什么?
| 关系型数据库 | MongoDB |
|---|---|
| 表(Table) | 集合(Collection) |
| 行(Row) | 文档(Document) |
| 列(Column) | 字段(Field) |
- 文档的数据结构和 JSON 基本一致
- 实际存储格式是 BSON(Binary JSON)
- 二进制形式
- 支持更多数据类型(Date、Binary、ObjectId 等)
二、插入文档的常用方法
推荐(MongoDB 3.2+)
| 方法 | 说明 |
|---|---|
insertOne() | 插入单个文档 |
insertMany() | 插入多个文档 |
旧方式(不推荐)
| 方法 | 说明 |
|---|---|
insert() | 单条或多条均可 |
save() | 不存在则插入,存在则更新(已逐步废弃) |
三、insertOne() 插入单个文档
db.persons.insertOne({
name: '钢铁是怎样炼成的',
author: '俄罗斯人',
price: 12.3
})Code language: CSS (css)
返回结果:
{
"acknowledged": true,
"insertedId": ObjectId("5e6a08c84b128d8c52db0f5b")
}Code language: JSON / JSON with Comments (json)
查看文档:
db.persons.find()Code language: CSS (css)
四、insertMany() 插入多个文档
db.persons.insertMany([
{ name: '张三', age: 12 },
{ name: '李四', age: 15 }
])Code language: JavaScript (javascript)
一次插入多条,性能更好
五、先定义变量再插入
zhangsan = {
name: '张三',
age: 12
}
db.persons.insertOne(zhangsan)Code language: JavaScript (javascript)
六、关于 _id 字段
- 如果插入时不指定
_id:- MongoDB 会自动生成
ObjectId
- MongoDB 会自动生成
- 如果插入时指定
_id:- 必须使用集合中不存在的
_id - 否则会抛异常
- 必须使用集合中不存在的
db.persons.insertOne({
_id: 1,
name: '自定义ID文档'
})Code language: CSS (css)
Previous: MongoDB 集合