Подтвердить что ты не робот

Mongodump игнорирует некоторые определенные коллекции

Я пытался создать резервную копию моей базы данных mongo на продукте sever.and затем восстановить ее обратно на промежуточный сервер. и здесь возникает какая-то проблема, в db есть много коллекций, я хочу, чтобы igonre собирал некоторые коллекции, которые я не хочу восстанавливать на промежуточном сервере.

Я могу подойти к этому, сбросив промежуточную db, выгружая производящую db, а затем восстановит prodct до стадии, используя опцию - drop. и восстановить указанные коллекции в стадии db.... действительно плохо.

1. dump producting db

mongodump --host product-server-host --username abcd --password bcda -d db -o pruduct-dump-dir

2. dump staging db

mongodump --host staging-server-host --username abcd --password bcda -d db -o staging -dump-dir

3. восстановить всю коллекцию, а затем восстановить коллекцию назад восстановить puduct-dump-dir для промежуточного сервера

mongorestore --host staging-server-host --username abcd --password bcda --drop pruduct-dump-dir

mongorestore --host staging-server-host --username abcd --password bcda --drop --collection coll pruducting-dump-dir

Есть ли какие-либо опции, такие как ignore-collection, когда я сбрасываю? любое предложение будет оценено: 3

4b9b3361

Ответ 1

Теперь доступна версия 3.0.0

--excludeCollection <collection_name>
--excludeCollectionsWithPrefix <collection_prefix>

Повторите, чтобы исключить более 1

Оформить заказ документация

Ответ 2

Вы можете добавить --collection COLLECTION_NAME, чтобы сбросить нужную вам коллекцию. По умолчанию, если вы не укажете коллекцию для дампа из базы данных, MongoDump будет удалять все коллекции в этой базе данных.

Ответ 3

mongodump --db test --excludeCollection=users --excludeCollection=salaries

Ответ 4

Начиная с Mongo 3.4, вы можете указать параметр --nsExclude <namespace pattern> при восстановлении с дампа базы данных Mongo, который исключает указанные пространства имен из операции восстановления. Это особенно полезно, если операция mongodump уже произошла.

Официальная документация здесь: https://docs.mongodb.com/manual/reference/program/mongorestore/#cmdoption-nsexclude

Вы можете исключить несколько коллекций с помощью подстановочных знаков:

mongorestore --db test --nsExclude 'test.*_tmp'

Или, альтернативно, задание нескольких параметров --nsExclude также работает:

mongorestore --db test --nsExclude 'test.collection1' --nsExclude 'test.collection2'