MongoDB 插入文档

一、文档(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
  • 如果插入时指定 _id
    • 必须使用集合中不存在的 _id
    • 否则会抛异常
db.persons.insertOne({
  _id: 1,
  name: '自定义ID文档'
})Code language: CSS (css)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注