将对象数组插入MongoDB

时间:2016-04-27 11:03:40

标签: javascript json mongodb

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

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

var array = [

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


      { _id: 'yKMx6sHQboL5m8Lqx',
        goals: 0,
        assists: 1,
        total: 1                  }];
  

db.MyCollection.insert(数组);

enter image description here

  

我想要什么

enter image description here

4 个答案:

答案 0 :(得分:5)

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", }
   ]
)

输出:

{
    "acknowledged" : true,
    "insertedIds" : [ 
        ObjectId("57d6c1d02e9af409e0553dff"), 
        ObjectId("57d6c1d02323d119e0b3c0e8"), 
        ObjectId("57d6c1d22323d119e0b3c16c")
    ]
}

答案 1 :(得分:3)

为什么不迭代数组对象,并一次插入一个?

array.forEach((item) => db.MyCollection.insert(item));

答案 2 :(得分:1)

浏览此链接以您想要的方式获得Exact Outcome:

https://docs.mongodb.org/manual/tutorial/insert-documents/#insert-a-document

答案 3 :(得分:0)

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

首先遍历数组并为每个项调用bulk方法:

bulk.insert(item)

循环后,请致电execute

bulk.execute()

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