将对象数组插入MongoDB

jus*_*ard 14 javascript json mongodb

我想知道如何使用自己的预定义_id值向Mongo集合"根级文档"插入对象数组.

我试过db.MyCollection.insert(array);但它在MongoDB中的一个单独生成的_id下创建了嵌套文档.

var array = [

      { _id: 'rg8nsoqsxhpNYho2N',
        goals: 0,
        assists: 1,
        total: 1                  },


      { _id: 'yKMx6sHQboL5m8Lqx',
        goals: 0,
        assists: 1,
        total: 1                  }];
Run Code Online (Sandbox Code Playgroud)

db.MyCollection.insert(数组);

在此输入图像描述

我想要的是

在此输入图像描述

mar*_*mor 8

所需的是db.collection.insertMany()(从3.2开始受支持):

db.users.insertMany(
   [
     { name: "bob", age: 42, status: "A", },
     { name: "ahn", age: 22, status: "A", },
     { name: "xi", age: 34, status: "D", }
   ]
)
Run Code Online (Sandbox Code Playgroud)

输出:

{
    "acknowledged" : true,
    "insertedIds" : [ 
        ObjectId("57d6c1d02e9af409e0553dff"), 
        ObjectId("57d6c1d02323d119e0b3c0e8"), 
        ObjectId("57d6c1d22323d119e0b3c16c")
    ]
}
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法“更新插入”许多类似的东西?我想每次推送一个数组,但大多数项目都会存在 (2认同)

Héc*_*eja 1

您可以使用MongoDB Bulk在一次数据库调用中插入多个文档。

首先迭代数组并bulk为每个项目调用方法:

bulk.insert(item)
Run Code Online (Sandbox Code Playgroud)

循环结束后,调用execute

bulk.execute()
Run Code Online (Sandbox Code Playgroud)

查看参考文档以了解更多信息。