Есть ли в mongodb операция массового чтения?

У меня есть список коллекций, и я хотел бы экспортировать все данные из MongoDB (по сути, дамп базы данных, но только для определенных коллекций).

Пользуюсь pymongo - есть ли функция быстрого дампа? скажите bulk_find ()

В качестве альтернативы я мог бы использовать это решение, которое не является оптимальным:

[d for d in db.collection.find()]

для каждой коллекции

Не специфично для pymongo, но вы смотрели mongoexport?

JohnnyHK 23.04.2018 22:43

Или mongodump, если вам не нужен удобочитаемый формат.

clcto 23.04.2018 22:46

спасибо за предложения. Я искал аналог insert_many, основанный на массовой находке.

vgoklani 23.04.2018 22:51

Вы можете вызвать batch_size на курсоре, возвращенном из find, чтобы эффективно выполнять массовое чтение любого размера, который вы хотите.

JohnnyHK 24.04.2018 01:00

Вероятно, вам действительно стоит прочитать эту опцию batch_size, поскольку наибольшее количество MongoDB, которое может включить в один «пакет», составляет 16 МБ. Это связано с тем, что ЛЮБОЙ ответ по-прежнему является документом BSON и подчиняется тем же ограничениям. В различных драйверах есть метод .toArray(), который просто реализует итератор так же, как вы используете его для извлечения в виде списка. Но у pymongo есть гораздо более простой способ извлечь в виде списка. Все остальное - это «поток», и для его подачи по-прежнему потребуется итератор.

Neil Lunn 24.04.2018 07:10
Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
5
1 550
0

Другие вопросы по теме