02-MongoDB文档插入

MongoDB文档插入



一、单个文档插入

db.<collection>.insertOne() 将单个文档插入到集合中。
下面的示例将一个新文档插入到清单(inventory)集合中。 如果文档没有指定 _id 字段,MongoDB 会将带有 ObjectId 值的 _id 字段添加到新文档中。

//将一个文档插入inventory集合中
db.inventory.insertOne(
   {
    
     item: "canvas", qty: 100, tags: ["cotton"], size: {
    
     h: 28, w: 35.5, uom: "cm" } }
)

insertOne()返回一个包含新插入文档的 _id 字段值的文档。

> db.inventory.insertOne(
...    {
    
     item: "canvas", qty: 100, tags: ["cotton"], size: {
    
     h: 28, w: 35.5, uom: "cm" } }
... )
{
    
    
        "acknowledged" : true,
        "insertedId" : ObjectId("62f4575ea1b95269b09767bc")   //新插入文档的_id
}

要检索您刚刚插入的文档,请查询集合:

> db.inventory.find( {
    
     item: "canvas" } )
{
    
     "_id" : ObjectId("62f4575ea1b95269b09767bc"), "item" : "canvas", "qty" : 100, "tags" : [ "cotton" ], "size" : {
    
     "h" : 28, "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" } }
])

insertMany() 返回一个包含新插入的文档 _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("62f45ac0a1b95269b09767bd"),    //新插入文档的_id
                ObjectId("62f45ac0a1b95269b09767be"),
                ObjectId("62f45ac0a1b95269b09767bf")
        ]
}

要检索插入的文档,请查询集合:

> db.inventory.find( {
     
     } )
{
    
     "_id" : ObjectId("62f4575ea1b95269b09767bc"), "item" : "canvas", "qty" : 100, "tags" : [ "cotton" ], "size" : {
    
     "h" : 28, "w" : 35.5, "uom" : "cm" } }
{
    
     "_id" : ObjectId("62f45ac0a1b95269b09767bd"), "item" : "journal", "qty" : 25, "tags" : [ "blank", "red" ], "size" : {
    
     "h" : 14, "w" : 21, "uom" : "cm" } }
{
    
     "_id" : ObjectId("62f45ac0a1b95269b09767be"), "item" : "mat", "qty" : 85, "tags" : [ "gray" ], "size" : {
    
     "h" : 27.9, "w" : 35.5, "uom" : "cm" } }
{
    
     "_id" : ObjectId("62f45ac0a1b95269b09767bf"), "item" : "mousepad", "qty" : 25, "tags" : [ "gel", "blue" ], "size" : {
    
     "h" : 19, "w" : 22.85, "uom" : "cm" } }

三、文档插入行为

3.1 集合创建

‎如果集合当前不存在,则插入操作将创建该集合。‎

3.2 _id 属性

在 MongoDB 中,存储在集合中的每个文档都需要一个唯一的 _id 字段作为主键。 如果插入的文档省略了 _id 字段,MongoDB 驱动程序会自动为 _id 字段生成一个 ObjectId。
这也适用于通过带有 upsert: true 的更新操作插入的文档。

3.3 原子性

MongoDB中的所有写入操作在单个文档的级别上都是原子的。

3.4 写确认

With write concerns, you can specify the level of acknowledgement requested from MongoDB for write operations.(待补充)

更多文档插入知识:

猜你喜欢

转载自blog.csdn.net/weixin_43302112/article/details/126305668