MongoDB基本操作(二):插入文档

MongoDB 小智 1638℃ 2评论

插入文档时的行为表现

创建集合

如果插入时集合不存在,那么插入的同时会创建该集合。

_id 字段

MongoDB中,一个集合所包含的每一个文档都需要一个唯一的 _id 字段,用来作为该文档的 primary key(主键)。如果一个插入文档的操作没有 _id 字段,那么MongoDB 驱动就会自动的为 _id 字段 创建一个 ObjectId

原子性

MongoDB中,对于一个单一的集合,所有的写操作都是原子的(就是说MongoDB提供了针对单个文档的原子操作)。

插入方法

MongoDB提供了以下方法,用来把文档插入到一个集合中
db.collection.insert()
db.collection.insertOne() 版本3.2中新增
db.collection.insertMany() 版本3.2中新增

db.collection.insertOne() 向集合插入单个文档

db.students.insertOne(
    {
        name: "luxinzhi",
        age: "25",
        studentId: "20112491"
    }
)

insertOne() 方法会返回 一个新的文档, 其中包含了已经插入文档中的_id 字段,如下:

{
        "acknowledged" : true,
        "insertedId" : ObjectId("586ba1d95618262abdec22a0")
}

当然,如果我们要查看刚刚插入的文档,我们可以进行以下操作

db.students.find()
或者
db.students.find({"age":"25"})

db.collection.insertMany() 向集合插入多个文档

db.students.insertMany(
    [
        {name: "luxinzhi", age: "25", studentId: "20112491",},
        {name: "hanmeimei", age: "18", studentId: "20112492",},
        {name: "lileilei", age: "35", studentId: "20112493",}
    ]
) 

返回

{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("586baaf95618262abdec22a1"),
                ObjectId("586baaf95618262abdec22a2"),
                ObjectId("586baaf95618262abdec22a3")
        ]
}

db.collection.insert() 向集合中插入一个或多个文档

如果想插入一个文档,就传递一个文档给该方法,如果想插入多个文档,就传递一个文档数组给该方法。

# 插入一个文档
db.students.insert(
    {
        name: "luxinzhi",
        age: "25",
        studentId: "20112491"
    }
)

插入一个文档时,db.collection.insert 会返回一个包含状态信息的 WriteResult对象,如下:

WriteResult({ "nInserted" : 1 })

nInserted 字段指定了插入文档的数量,如果该操作遇到了错误, WriteResult 对象将包含该错误信息

# 插入多个文档
db.students.insert(
    [
        {name: "luxinzhi", age: "25", studentId: "20112491",},
        {name: "hanmeimei", age: "18", studentId: "20112492",},
        {name: "lileilei", age: "35", studentId: "20112493",}
    ]
) 

插入多个文档时,db.collection.insert 会返回一个包含状态信息的 BulkWriteResult 对象,成功插入时,返回的 BulkWriteResult对象如下

BulkWriteResult({
        "writeErrors" : [ ],
        "writeConcernErrors" : [ ],
        "nInserted" : 3,
        "nUpserted" : 0,
        "nMatched" : 0,
        "nModified" : 0,
        "nRemoved" : 0,
        "upserted" : [ ]
})

本文固定链接:心知博客 » MongoDB基本操作(二):插入文档
本站内容除特别标注外均为原创,欢迎转载,但请保留出处!

喜欢 (5)
发表我的评论
取消评论
表情

请填写您的昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 一言不发岂能证明我来过了?!
    中医秘方2017-12-12 10:37回复
  2. 这样的博客让人禁不住一天来几次!
    促美优品2017-12-18 19:08回复