Est-il possible de vider la collection de mongo au format JSON? Soit sur le Shell ou en utilisant Java le pilote. Je recherche celui qui offre les meilleures performances.
Mongo inclut un utilitaire mongoexport (voir docs) 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
: écrit 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 formatées JSON ( docs )
Utilisez mongoexport/mongoimport pour dump/restaurer une collection:
Exporter un 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
WARNING
mongoimport
etmongoexport
ne conservent pas de manière fiable tous les types de données BSON riches, car JSON peut uniquement représenter un sous-ensemble des types pris en charge par BSON. En conséquence, les données exportées ou importées avec ces outils risquent de perdre un peu de fidélité.
Aussi, http://bsonspec.org/
BSON est conçu pour être rapide à encoder et à décoder. Par exemple, les entiers sont stockés sous forme d'entiers de 32 (ou 64 bits), il n'est donc pas nécessaire de les analyser avec du texte. Cela utilise plus d'espace que JSON pour les petits entiers, mais son analyse est beaucoup plus rapide.
Outre la compacité, BSON ajoute des types de données supplémentaires non disponibles dans JSON, notamment les types de données BinData et Date.
Voici ma commande pour référence:
mongoexport --db AppDB --collection files --pretty --out output.json
Sous Windows 7 (MongoDB 3.4), il faut déplacer le cmd à l’endroit où mongod.exe
et mongo.exe
Le fichier réside => C:\MongoDB\Server\3.4\bin
sinon, ça ne marchera pas si on dit que ça ne reconnaît pas la commande mongoexport
.
De la documentation Mongo:
L'utilitaire mongoexport prend une collection et exporte au format JSON ou CSV. Vous pouvez spécifier un filtre pour la requête ou une liste de champs à afficher
Lisez plus ici: http://www.mongodb.org/display/DOCS/mongoexport
Si vous souhaitez vider toutes les collections, exécutez cette commande:
mongodump -d {DB_NAME} -o /tmp
Il générera toutes les données de collections dans les extensions json
et bson
dans /tmp/{DB_NAME}
répertoire