Как сбросить всю базу данных MongoDB в виде текста/json?

Как я могу сбросить всю базу данных MongoDB в виде текста (обычный текст, json или CSV)?

Я использую приложение, с которым я не слишком хорошо знаком. Я хотел бы

  • очистить базу данных
  • Загрузка данных семян
  • dump весь db как текст
  • сделайте что-нибудь.
  • снова сбросить

тогда разделите два!

Ответ 1

Вы можете использовать утилиту mongoexport. Он по умолчанию выгрузит json, но вы можете указать, чтобы вывести формат csv.

mongoexport --help предоставит вам все параметры, которые вам понадобятся.

Вы упомянули, что хотите сбросить все коллекции из базы данных, а mongoexport ожидает, что вы укажете имя базы данных и коллекции, так как она ожидает сброса одной коллекции.

Вы можете написать короткую оболочку script (если вы находитесь в Windows, конвертируете в пакетный script) в действие:

#!/bin/sh
# assuming mongo bin is in your path

host=YOURMONGOHOST
port=YOURMONGOPORT
db=DBYOUWANTTOEXPORT

for c in `mongo --quiet $host:$port/$db --eval 'db.getCollectionNames()' | sed 's/,/ /g'`
do
    mongoexport --host $host --port $port -d $db -c $c > $c.json
done

Ответ 2

Используя mongodump и bsondump:

Шаг 1 Сбросьте всю базу данных на файлы BSON:

 mongodump --db db1

Шаг 2 Преобразуйте каждый файл BSON в файл JSON:

for f in dump/db1/*.bson; do bsondump "$f" > "$f.json"; done

Надеюсь, что это поможет!