web-dev-qa-db-fra.com

Comment utiliser les données sous-évaluées par mongodump?

J'ai utilisé mongodump pour vider ma base de données de mongodb, il a créé des fichiers bson sous dump/mydb

Mais je ne sais pas comment les utiliser. J'ai essayé mongoimport, mais il semble qu'il ne puisse pas importer de données bson. Alors comment utiliser ces fichiers bson? Comment les importer dans un autre mongodb?

65
Freewind

Vous devez utiliser mongorestore , pas mongoimport ... qui est utilisé pour des choses comme l'importation de json, ou csv, etc.

Du back-up-with-mongodump documents:

mongodump lit les données d'une base de données MongoDB et crée des fichiers BSON haute fidélité que l'outil mongorestore peut utiliser pour remplir une base de données MongoDB.

mongodump et mongorestore sont des outils simples et efficaces pour sauvegarder et restaurer de petits déploiements MongoDB, mais ne sont pas idéaux pour capturer des sauvegardes de systèmes plus grands.

Vous pouvez en savoir plus sur mongorestore dans les documents ci-dessous; Je jetterais un coup d'oeil et les lirais car ils sont très utiles.

http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongorestore

Vous pouvez également consulter http://learnmongo.com pour obtenir des conseils et de l'aide!

65
Justin Jenkins

J'utilise mongodump , mongorestore pour les sauvegardes quotidiennes et la restauration à partir de la sauvegarde. J'ai deux fichiers .bat:
Tout d'abord, pour la sauvegarde, où vous devez simplement spécifier le nom de la base de données hôte et le dossier de sauvegarde:

SET Host=localhost:27020
SET dbNameToDump=MyDB
SET backupsFolder=Backups

mongodump.exe --Host %Host% --db %dbNameToDump%

SET date="%date:~10,4%-%date:~4,2%-%date:~7,2%.%time:~0,2%-%time:~3,2%"
cd %backupsFolder%
md %date%

xcopy /e ..\dump %date%

rmdir /s /q ..\dump

Au-dessus du fichier bat, créez un dossier avec un nom comme celui-ci 2011-03-31.11-17(yyyy-MM-dd.hh-ss) dans le dossier Sauvegardes avec les collections vidées de la base de données spécifiée. Dans l'Explorateur de fichiers, cela ressemble à ceci:

enter image description here

Deuxième fichier bat que j'utilise pour restaurer les fichiers de vidage spécifiés (ici, vous devez également spécifier le nom de la base de données et le dossier avec les fichiers de vidage):

SET Host=localhost:27020
SET dbNameToRestore=MyDB
SET restoreFolder=Restore

mongorestore.exe --Host %Host% --db %dbNameToRestore% %restoreFolder%

Dans l'explorateur de fichiers:

enter image description here

De plus, j'utilise le programme Windows pour automatiser le processus de sauvegarde.

J'espère que les informations ci-dessus seront utiles à quelqu'un.

37
Andrew Orsich

Comme mentionné dans les réponses précédentes, vous devez utiliser mongorestore au lieu de mongoimport. En ajoutant aux réponses précédentes, lorsque votre mongodb est en cours d'exécution, exécutez la commande suivante pour restaurer votre vidage à partir du répertoire de vidage,

mongorestore dump

Cela importera toutes les collections dans votre base de données mydb . Cependant, cela ne supprime pas la base de données avant la restauration. Si vous souhaitez supprimer la base de données avant l'importation,

mongorestore --drop dump

Les fichiers bson dans le répertoire mydb seront restaurés comme les collections à l'intérieur mydb base de données. Pour plus d'informations sur mongorestore, consultez la documentation ici .

8
Divyanshu Maithani

Utilisez mongorestore. mongoimport travaille sur la sortie de mongoexport. mongodump & mongorestore fonctionne sur des fichiers de données binaires tandis que l'importation/exportation fonctionne sur json, csv, etc. (formats lisibles par l'homme)

6
will

Pour résoudre ce problème, j'ai copié le dossier de vidage, dbdump (qui contient les fichiers bson) dans le répertoire bin de mongodb et j'ai exécuté les commandes ci-dessous dans l'invite de commande:

1. cd "chemin vers le dossier bin de MongoDB"
(Exemple: cd C:\Program Files\MongoDB\Server\3.2\bin)

2. mongorestore.exe --dir ./nom du répertoire --db nom-base de données
(Exemple: mongorestore --dir ./dbdump --db testdb)

Tous les fichiers bson du dossier de vidage seront importés dans votre base de données. Vous pouvez le vérifier en exécutant les commandes ci-dessous:
cd "chemin vers le dossier bin de MongoDB"
mongo.exe
show dbs;

3
Padmini C