前言
此篇博文是 Mongdb 基础系列之一;
本文为作者的原创作品,转载需注明出处;
简介
本文主要是增对特定语言如何执行插入操作的讲解;官网上对各个热门语言如何对 MongoDB 执行 insert 操作分别作了比较详细的描述;这里呢,因为 mongo shell 是在平时调试、检查、运维最常用的操作,所以,笔者这里重点考察如何通过 mongo shell 来进行 insert 操作;要注意的是,Mongo Shell 是通过 javascript 实现的交互式应用;
Insert a Single Document
New in version 3.2.
1 | db.inventory.insertOne( |
注意,插入过程中,如果没有指定 _id,那么 MongoDB 会自动的为其生成一个;插入成功以后,将会返回一个 document,其中包含了当前成功插入的 document 的 _id;更多细节,查看 db.collection.insertOne() reference
可以通过如下的方式来查询刚插入的 document,
1 | > db.inventory.find( { item: "canvas" } ) |
Insert Multiple documents
New in version 3.2.
1 | db.inventory.insertMany([ |
可见,通过 insertMany 可以同时插入多个 documents,同样的,如果插入过程中,没有指定 _id 值,系统将会自动的生成;
insertMany() returns a document that includes the newly inserted documents _id field values. See the reference for an example.
Insert Behavior
_id Field
In MongoDB, each document stored in a collection requires a unique _id field that acts as a primary key. If an inserted document omits the _id field, the MongoDB driver automatically generates an ObjectId for the _id field.
This also applies to documents inserted through update operations with upsert: true.
Atomicity
MongoDB 的所有写入事务都是作用在一个 document 之上的;Atomicity and Transactions for more information;
Write Acknowledgement
With write concerns, you can specify the
level of acknowledgement
requested from MongoDB for write operations. For details, see Write Concern.