Existe-t-il un moyen de vider la collection mongo au format json? Soit sur le shell ou en utilisant le pilote java, je recherche celui qui offre les meilleures performances.
mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase adminVous pouvez spécifier le host, port, username, passwordcomme celui - ci et la base de données d'authentification par défaut est admin.
Max Peng
Réponses:
177
Mongo inclut un utilitaire mongoexport (voir la documentation) qui peut vider une collection. Cet utilitaire utilise le libmongoclient natif et est probablement la méthode la plus rapide.
mongoexport -d <database>-c <collection_name>
Aussi utile:
-o: écrire la sortie dans un fichier, sinon la sortie standard est utilisée ( docs )
--jsonArray: génère un document json valide, au lieu d'un objet json par ligne ( docs )
Utilisez l'indicateur -d pour spécifier la base de données à utiliser.
Reimund
8
Si vous voulez un JSON joli imprimé (par exemple pour inspecter une collection pendant le développement) utilisez le --prettydrapeau:mongoexport -d mydatabase -c mycollection --pretty
Max Truxa
6
Si Mongo est situé sur un hôte différent, voici un exemple du document Mongo mongoexport --host mongodb1.example.net --port 37017 --username user --password "pass" --collection contacts --db marketing --out mdb1-examplenet.json
What would Be Cool
Il semble que ce --prettysoit parti depuis la version 2.6.10.
icedwater
115
Utilisez mongoexport / mongoimport pour vider / restaurer une collection:
ATTENTION
mongoimportet mongoexportne préservez pas de manière fiable tous les types de données BSON riches car JSON ne peut représenter qu'un sous-ensemble des types pris en charge par BSON. En conséquence, les données exportées ou importées avec ces outils peuvent perdre une certaine fidélité.
BSON est conçu pour être rapide à encoder et à décoder. Par exemple, les entiers sont stockés sous forme d'entiers 32 (ou 64) bits, ils n'ont donc pas besoin d'être analysés vers et depuis le texte. Cela utilise plus d'espace que JSON pour les petits entiers, mais est beaucoup plus rapide à analyser.
En plus de la compacité, BSON ajoute des types de données supplémentaires non disponibles dans JSON, notamment les types de données BinData et Date.
Y at - il un exemple de « riche en données BSON » ne résisterait pas mongoexport/ mongoimportaller - retour?
andrewdotn
1
Il ajoute la prise en charge des types de données tels que Date et binaire qui ne sont pas pris en charge dans JSON. Aussi, plus rapide à l'encodage et au décodage bsonspec.org
Sous Windows 7 (MongoDB 3.4), on doit déplacer le cmd à l'endroit où mongod.exeet mongo.exeréside le fichier =>
C:\MongoDB\Server\3.4\binsinon il ne fonctionnera pas dire qu'il ne recongnize mongoexportcommande.
Est-ce que quelqu'un connaît un formateur qui formatera le format JSON normal au format idiot "ligne unique sans virgule" que MongoDB attend lors de l'importation?
conor909 le
3
De la documentation Mongo:
L'utilitaire mongoexport prend une collection et exporte vers JSON ou CSV. Vous pouvez spécifier un filtre pour la requête ou une liste de champs à afficher
En fait, il est toujours en train de déposer bson et metadata.bson :-(
Prasad
9
Cette réponse est incorrecte. mongodumpproduit les données au BSONformat. D'autres réponses sont correctement appelées mongoexportle bon outil.
Christian Dechery
Cela fonctionne pour moi, sa sortie de toute la collection dans un dossier tmp avec des fichiers bson et json. J'ai utilisé mongodump -d {dbname} -o tmp
mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase admin
Vous pouvez spécifier lehost
,port
,username
,password
comme celui - ci et la base de données d'authentification par défaut estadmin
.Réponses:
Mongo inclut un utilitaire mongoexport (voir la documentation) qui peut vider une collection. Cet utilitaire utilise le libmongoclient natif et est probablement la méthode la plus rapide.
Aussi utile:
-o
: écrire la sortie dans un fichier, sinon la sortie standard est utilisée ( docs )--jsonArray
: génère un document json valide, au lieu d'un objet json par ligne ( docs )--pretty
: sorties json formaté ( docs )la source
--pretty
drapeau:mongoexport -d mydatabase -c mycollection --pretty
mongoexport --host mongodb1.example.net --port 37017 --username user --password "pass" --collection contacts --db marketing --out mdb1-examplenet.json
--pretty
soit parti depuis la version 2.6.10.Utilisez mongoexport / mongoimport pour vider / restaurer une collection:
Exporter le fichier JSON :
mongoexport --db <database-name> --collection <collection-name> --out output.json
Importer un fichier JSON :
mongoimport --db <database-name> --collection <collection-name> --file input.json
Aussi, http://bsonspec.org/
la source
mongoexport
/mongoimport
aller - retour?Voici ma commande pour référence:
Sous Windows 7 (MongoDB 3.4), on doit déplacer le cmd à l'endroit où
mongod.exe
etmongo.exe
réside le fichier =>C:\MongoDB\Server\3.4\bin
sinon il ne fonctionnera pas dire qu'il ne recongnizemongoexport
commande.la source
De la documentation Mongo:
En savoir plus ici: http://www.mongodb.org/display/DOCS/mongoexport
la source
Si vous souhaitez vider toutes les collections, exécutez cette commande:
Il générera toutes les données de collections
json
et lesbson
extensions dans le/tmp/{DB_NAME}
répertoirela source
mongodump
produit les données auBSON
format. D'autres réponses sont correctement appeléesmongoexport
le bon outil.