Вставить / обновить / удалить много документов в mongodb - PullRequest
1 голос
/ 04 августа 2020

Я хочу выполнить грубые операции примерно с 1000 документами.

с использованием al oop и вставки 1 на 1 - это нормально, но есть способ лучше, он же более быстрый?

как для пример в Postgres Я могу использовать generate_series () для этой цели, а как насчет Mon go?

1 Ответ

2 голосов
/ 04 августа 2020

Как писал прасад в комментариях выше, вы можете использовать insertMany () . Вы должны написать al oop, чтобы сгенерировать документы и сохранить их в массиве. Затем вы можете передать этот массив документов в db.collection.insertMany ().

Другой вариант - использовать bulkWrite . Вы можете написать al oop, чтобы сгенерировать массив операций, которые вы хотите вставить. Например:

[ 
    { insertOne: { "document": { "name": "Gal", "hobbies": ["reading", "gaming"     ] } } },
    { insertOne: { "document": { "name": "Gal", "hobbies": ["reading", "gaming" ] } } },
    ... 
]

Затем вы должны передать этот массив в bulkWrite:

try {
   db.characters.bulkWrite(myArray);
} catch (e) {
   print(e);
}
...