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?
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'outilmongorestore
peut utiliser pour remplir une base de données MongoDB.
mongodump
etmongorestore
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!
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:
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:
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.
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 .
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)
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;