Je souhaite exporter toutes les collections dans MongoDB par la commande:
mongoexport -d dbname -o Mongo.json
Le résultat est:
Aucune collection spécifiée!
Le manuel indique que si vous ne spécifiez pas de collection, toutes les collections seront exportées.
Cependant, pourquoi cela ne fonctionne-t-il pas?
http://docs.mongodb.org/manual/reference/mongoexport/#cmdoption-mongoexport--collection
Ma version MongoDB est 2.0.6.
Réponses:
Pour les paresseux, utilisez
mongodump
, c'est plus rapide:Et pour le "restaurer / importer" (à partir de directory_backup / dump /):
De cette façon, vous n'avez pas besoin de traiter toutes les collections individuellement. Spécifiez simplement la base de données.
Notez que je déconseille d'utiliser
mongodump
/mongorestore
pour les stockages de Big Data . Il est très lent et une fois que vous avez dépassé 10/20 Go de données, la restauration peut prendre des heures.la source
J'ai écrit un script bash pour ça. Il suffit de l'exécuter avec 2 paramètres (nom de la base de données, dir pour stocker les fichiers).
la source
for file in *.json; do c=${file#*exp_yourdbname_}; c=${c%.json}; mongoimport --db yourdbname --collection "${c}" --file "${file}"; done
Suivez les étapes ci-dessous pour créer un mongodump à partir du serveur et l'importer sur un autre serveur / machine locale qui a un nom d'utilisateur et un mot de passe
la source
Pour exporter toutes les collections à l'aide de mongodump, utilisez la commande suivante
mongodump -d database_name -o directory_to_store_dumps
Pour restaurer, utilisez cette commande
la source
mongodump -d mongo -o path\to\Desktop\blog
et j'en ai unSyntaxError: missing ; before statement
du CMD. :(Veuillez nous indiquer où vous avez installé votre Mongo DB? (soit sous Ubuntu soit sous Windows)
Pour les fenêtres:
mongodump --db nom de la base de données --out chemin à enregistrer
par exemple: mongodump --db mydb --out c: \ TEMP \ op.json
Pour Ubuntu:
mongodump -d nom de la base de données -o nom du fichier à enregistrer,
par exemple: mongodump -d mydb -o output.json
la source
Les réponses précédentes l'ont bien expliqué, j'ajoute ma réponse pour vous aider au cas où vous auriez affaire à une base de données distante protégée par mot de passe
la source
Dans le cas où vous souhaitez connecter un serveur mongoDB distant comme mongolab.com, vous devez transmettre les informations de connexion, par exemple.
la source
Si vous êtes d'accord avec le format bson, vous pouvez utiliser l'utilitaire mongodump avec le même indicateur -d. Il videra toutes les collections dans le répertoire de vidage (par défaut, peut être modifié via l'option -o) au format bson. Vous pouvez ensuite importer ces fichiers à l'aide de l'utilitaire mongorestore.
la source
Vous pouvez utiliser
mongo --eval 'printjson(db.getCollectionNames())'
pour obtenir la liste des collections, puis faire un mongoexport sur chacune d'entre elles. Voici un exemple en rubisla source
out.scan(/\".+?\"/).map { |s| s.gsub('"', '') }
J'avais besoin de la version du script batch Windows. Ce fil était utile, alors j'ai pensé que j'y contribuerais aussi.
J'ai eu quelques problèmes à utiliser
set /p COLLECTIONS=<__collections.txt
, d'où lafor /f
méthode alambiquée .la source
J'ai trouvé après avoir essayé de nombreux exemples compliqués que l'approche très simple a fonctionné pour moi.
Je voulais juste prendre un vidage d'une base de données du local et l'importer sur une instance distante:
sur la machine locale:
puis je scp'd mon vidage sur ma machine serveur:
puis à partir du répertoire parent du vidage simplement:
et qui a importé la base de données.
en supposant que le service mongodb fonctionne bien sûr.
la source
Si vous le souhaitez, vous pouvez exporter toutes les collections vers csv sans spécifier
--fields
(exportera tous les champs).Depuis http://drzon.net/export-mongodb-collections-to-csv-without-specifying-fields/ exécutez ce script bash
la source
Vous pouvez le faire en utilisant la commande mongodump
Les fichiers exportés seront créés dans le dossier destination_path \ your_db_name (dans cet exemple C: \ Users \ HP \ Desktop \ test)
Références: o7planning
la source
Si vous souhaitez vider toutes les collections dans toutes les bases de données (ce qui est une interprétation extensive de l'intention du questionneur d'origine), utilisez
Toutes les bases de données et collections seront créées dans un répertoire appelé «dump» à l'emplacement «actuel»
la source
Je me rends compte que c'est une question assez ancienne et que mongodump / mongorestore est clairement la bonne façon si vous voulez un résultat 100% fidèle, y compris les index.
Cependant, j'avais besoin d'une solution rapide et sale qui serait probablement compatible en amont et en aval entre les anciennes et les nouvelles versions de MongoDB, à condition qu'il n'y ait rien de particulièrement loufoque. Et pour cela, je voulais la réponse à la question d'origine.
Il existe d'autres solutions acceptables ci-dessus, mais ce pipeline Unix est relativement court et doux:
Cela produit un nom approprié
.json
fichier pour chaque collection.Notez que le nom de la base de données ("ma base de données") apparaît deux fois. Je suppose que la base de données est locale et que vous n'avez pas besoin de transmettre vos informations d'identification, mais il est facile de le faire à la fois avec
mongo
etmongoexport
.Notez que j'utilise
grep -v
pour supprimersystem.indexes
, car je ne veux pas qu'une ancienne version de MongoDB essaie d'interpréter une collection système à partir d'une plus récente. Au lieu de cela, j'autorise mon application à effectuer sesensureIndex
appels habituels pour recréer les index.la source
vous pouvez créer un fichier zip en utilisant la commande suivante. Il créera le fichier zip de la base de données {dbname} fourni. Vous pourrez ultérieurement importer le fichier zip suivant dans votre mongo DB.
la source
Voici ce qui a fonctionné pour moi lors de la restauration d'une base de données exportée:
mongorestore -d 0 ./0 --drop
où ./ contient les fichiers bson exportés. Notez que le
--drop
remplacera les données existantes.la source
si vous souhaitez utiliser mongoexport et mongoimport pour exporter / importer chaque collection de la base de données, je pense que cet utilitaire peut vous être utile. J'ai utilisé des utilitaires similaires plusieurs fois;
la source
Si vous souhaitez sauvegarder tous les dbs sur le serveur, sans vous soucier de l'appel des dbs, utilisez le script shell suivant:
Cela utilise l'utilitaire mongodump, qui sauvegarde toutes les bases de données si aucune n'est spécifiée.
Vous pouvez mettre cela dans votre cronjob, et cela ne fonctionnera que si le processus mongod est en cours d'exécution. Il créera également le répertoire de sauvegarde s'il n'en existe pas.
Chaque sauvegarde de base de données est écrite dans un répertoire individuel, vous pouvez donc restaurer des bases de données individuelles à partir du vidage global.
la source
Tout d'abord, de démarrer la base de données Mongo - pour cela, allez sur le chemin comme ->
C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin et cliquez sur le fichier mongod.exe pour démarrer le serveur MongoDB.
Commande dans Windows pour exporter
C:> mongodump --host remote_ip_address: 27017 --db -o C: / Users / Desktop / temp-folder
Commande dans Windows pour importer
C:> mongorestore --host = ip --port = 27017 -d C: / Users / Desktop / temp-folder / db-dir
la source
la source
Exportation:
mongo/bin> mongoexport -d webmitta -c domain -o domain-k.json
Importer:
mongoimport -d dbname -c newCollecionname --file domain-k.json
Où
la source
Il y a plusieurs options selon ce que vous voulez faire
1) Si vous souhaitez exporter votre base de données vers une autre base de données mongo, vous devez utiliser
mongodump
. Cela crée un dossier de fichiers BSON contenant des métadonnées que JSON n'aurait pas.2) Si vous souhaitez exporter votre base de données dans JSON, vous pouvez utiliser,
mongoexport
sauf que vous devez le faire une collection à la fois (c'est par conception). Cependant, je pense qu'il est plus facile d'exporter la base de données entière avecmongodump
puis de convertir en JSON.la source
Pour le vidage, votre DB en jachère le CMD ci-dessous
la source
Pour exporter au format JSON, procédez comme suit en suivant les commandes que vous pouvez voir.
la source