Restauration d'une collection unique dans un mongodb existant

j'échoue lamentablement à restaurer une collection unique dans une base de données existante. Je lance Ubuntu 14.04 avec mongo version 2.6.7 Il y a un dump/mydbname/contents.bson est basé sur mon répertoire personnel.

si je cours

mongorestore --collection contents --db mydbname

Puis-je obtenir:

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

Si j'ajoute dans le chemin d'accès

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

Puis-je obtenir

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

j'ai essayé diverses autres combinaisons, options,etc. et juste ne pouvez pas puzzle, si je veux en venir l'aide de la communauté!

26
demandé sur JonRed 2015-02-21 03:00:35

2 réponses

si vous voulez restaurer une seule collection, alors vous devez spécifier le fichier dump de la collection. Le fichier dump de la collection se trouve dans le dossier' dump/dbname/'. Donc, en supposant que votre dossier dump est dans votre répertoire de travail actuel, la commande irait quelque chose comme -

mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson
57
répondu Abhay PS 2015-02-21 00:39:40

si vous restaurez plusieurs collections, vous pouvez utiliser une boucle:

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
0
répondu Alexander Mills 2018-02-20 21:20:01