Je n'arrive pas misérablement à pouvoir restaurer une seule collection dans une base de données existante . J'utilise Ubuntu 14.04 avec Mongo version 2.6.7 annuaire.
Si je cours
mongorestore --collection contents --db mydbname
Alors je reçois:
connected to: 127.0.0.1
don't know what to do with file [dump]
Si j'ajoute dans le chemin
mongorestore --collection contents --db mydbname --dbpath dump/mydbname
Puis je reçois
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 je ne peux tout simplement pas résoudre le problème. Je viens donc chercher de l'aide auprès de la communauté!
Si vous souhaitez restaurer une seule collection, vous devez spécifier le fichier de vidage de la collection. Le fichier de vidage de la collection se trouve dans le dossier 'dump/nombase /'. Donc, en supposant que votre dossier de vidage se trouve dans votre répertoire de travail actuel, la commande donnerait quelque chose comme:
mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson
Des mesures pour restaurer une collection spécifique dans le mongodb.
1) Accédez au répertoire dans lequel se trouve votre dossier de vidage.
2) Exécutez la commande suivante en modifiant en fonction de votre nom de base de données et de votre nom de collection.
mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson
Si vous obtenez Failed: yourdbname.collection.name: error creating indexes for collection.name: createIndex error: The field 'safe' is not valid for an index specification error
, vous pouvez utiliser la commande suivante:
mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson --noIndexRestore
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