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

Восстановление единой коллекции в существующем mongodb

Я терпеть неудачу, чтобы иметь возможность восстановить единую коллекцию в существующей базе данных. Я запускаю Ubuntu 14.04 с версией mongo 2.6.7 В моем домашнем каталоге есть дамп /mydbname/contents.bson.

Если я запустил

mongorestore --collection contents --db mydbname

Тогда я получаю:

connected to: 127.0.0.1
don't know what to do with file [dump]

Если я добавлю в путь

mongorestore --collection contents --db mydbname --dbpath dump/mydbname

Тогда я получаю

If you are running a mongod on the same path you should connect to that instead of direct data file access

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

4b9b3361

Ответ 1

Если вы хотите восстановить одну коллекцию, вам необходимо указать файл дампа коллекции. Файл дампа коллекции находится в папке "dump/dbname/". Итак, если ваша папка дампа находится в вашем текущем рабочем каталоге, команда будет выглядеть примерно так:

mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson

Ответ 2

Если вы восстанавливаете несколько коллекций, вы можете использовать цикл:

for file in "$HOME/mongodump/dev/<your-db>/"* ; do

  if [[ "$file" != "*metadata*" && "$file" != "system.*" && "$file" != "locks.*" ]]; then

    file="$(basename "$file')"

    mongorestore \
        --db cdt_dev \
        --collection "${file%.*}" \   # filename w/o extension
        --host "<your-host>" \
        --authenticationDatabase "<your-auth-db>" \
        -u "user" \
        -p "pwd" \
        "$HOME/mongodump/dev/<your-db>/$file"

  fi;

done

Ответ 3

Действия по восстановлению определенной коллекции в mongodb.

1) Перейдите в каталог, где находится ваша папка дампа.

2) Выполните следующую команду, изменив ее в соответствии с именем вашей базы данных и именем вашей коллекции.

mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson

Если вы получили Failed: yourdbname.collection.name: error creating indexes for collection.name: createIndex error: The field 'safe' is not valid for an index specification error, то можете использовать следующую команду:

mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson --noIndexRestore

Ответ 4

Я думаю, что теперь это делается с помощью опции --nsInclude:

mongorestore --nsInclude test.purchaseorders dump/

dump/ - это папка с данными вашего монодумпа, test - это дБ, а purchaseorders - это коллекция.

https://docs.mongodb.com/manual/reference/program/mongorestore/