Вставить массив объектов в MongoDB

Интересно, как я мог вставить массив объектов в коллекцию Mongo "файлы на уровне корня" с собственными предопределенными значениями _id.

Я пробовал db.MyCollection.insert(array);, но он создает вложенные документы под одним сгенерированным _id в MongoDB.

var array = [

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


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

db.MyCollection.insert(массив);

введите описание изображения здесь

Что я хочу

введите описание изображения здесь

Ответ 1

Почему бы не перебирать объекты массива и вставлять их по одному?

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

Ответ 3

Вы можете использовать MongoDB Bulk для вставки нескольких документов в один звонок в базу данных.

Сначала перебираем массив и вызываем метод bulk для каждого элемента:

bulk.insert(item)

После цикла вызовите execute:

bulk.execute()

Взгляните на реферированную документацию, чтобы узнать больше.

Ответ 4

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