MongoDB 官方文档学习笔记(四):2 - insert操作及方法

目录

insert插入文档

插入单文档

插入多文档

插入行为

集合创建

_id字段

原子性

写操作应答

插入方法


insert插入文档

本文讲述MongoDB的insert操作,通过mongoShell演示。

提示: 若当前集合不存在,则insert操作自动创建。

插入单文档

db.collection.insertOne() 方法向集合中插入单个文档。

下面的例子演示了向inventory集合中插入一个新文档。若未给文档指定_id字段,MongoDB自动为新文档添加ObjectId类型的_id字段。

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

insertOne()执行返回文档_id:

{
    "acknowledged" : true,
    "insertedId" : ObjectId("5b529f7371fd3aefbaa94716")
}

查询刚刚插入的文档:

db.inventory.find( { item: "canvas" } )

返回结果:

{
    "_id" : ObjectId("5b529f7371fd3aefbaa94716"),
    "item" : "canvas",
    "qty" : 100.0,
    "tags" : [ 
        "cotton"
    ],
    "size" : {
        "h" : 28.0,
        "w" : 35.5,
        "uom" : "cm"
    }
}

插入多文档

db.collection.insertMany() 方法可通过传入文档数组的方式向集合插入多个文档。

下面向inventory集合中插入三个文档,若未给文档指定_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" } }
])

返回:

{
    "acknowledged" : true,
    "insertedIds" : [ 
        ObjectId("5b52a22b71fd3aefbaa94717"), 
        ObjectId("5b52a22b71fd3aefbaa94718"), 
        ObjectId("5b52a22b71fd3aefbaa94719")
    ]
}

可通过find()方法查看全部集合文档或指定过滤器或条件查询:

db.inventory.find( {} )

插入行为

集合创建

若当前集合不存在,则insert操作自动创建。

_id字段

在MongoDB中,任何文档都需要有_id字段,且作为主键。若未给文档指定_id字段,MongoDB自动为新文档添加ObjectId类型的_id字段。

这同样适用于通过upsert插入的文档;

原子性

所有基于单文档的写操作都是原子的。see Atomicity and Transactions

写操作应答

With write concerns, you can specify the level of acknowledgement requested from MongoDB for write operations. For details, see Write Concern.

插入方法

MongoDB提供以下插入文档的方法:

db.collection.insertOne() Inserts a single document into a collection.
db.collection.insertMany() db.collection.insertMany() inserts multiple documents into a collection.
db.collection.insert() db.collection.insert() inserts a single document or multiple documents into a collection.

其他可插入文档的方法:

猜你喜欢

转载自blog.csdn.net/zhujq_icode/article/details/81142157