У меня есть список коллекций, и я хотел бы экспортировать все данные из MongoDB (по сути, дамп базы данных, но только для определенных коллекций).
Пользуюсь pymongo - есть ли функция быстрого дампа? скажите bulk_find ()
В качестве альтернативы я мог бы использовать это решение, которое не является оптимальным:
[d for d in db.collection.find()]
для каждой коллекции
спасибо за предложения. Я искал аналог insert_many, основанный на массовой находке.
Вы можете вызвать batch_size на курсоре, возвращенном из find, чтобы эффективно выполнять массовое чтение любого размера, который вы хотите.
Вероятно, вам действительно стоит прочитать эту опцию batch_size, поскольку наибольшее количество MongoDB, которое может включить в один «пакет», составляет 16 МБ. Это связано с тем, что ЛЮБОЙ ответ по-прежнему является документом BSON и подчиняется тем же ограничениям. В различных драйверах есть метод .toArray(), который просто реализует итератор так же, как вы используете его для извлечения в виде списка. Но у pymongo есть гораздо более простой способ извлечь в виде списка. Все остальное - это «поток», и для его подачи по-прежнему потребуется итератор.

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