2012-10-10 2 views

Répondre

58

vous pouvez essayer ce qui suit de la ligne de commande

mongo 127.0.0.1/db --eval "var c = db.collection.find(); while(c.hasNext()) {printjson(c.next())}" >> test.txt 

supposant que vous avez une base de données appelée « db » en cours d'exécution sur localhost et une collection appelée « collection » cela exporter tous les enregistrements dans un fichier appelé test. txt

Si vous avez un script plus que vous voulez vous exécuter pouvez également créer un fichier script.js et il suffit d'utiliser

mongo 127.0.0.1/db script.js >> test.txt 

J'espère que cela aide

+1

me montre une erreur - manquant; avant l'instruction (shell): 1 – QVSJ

+0

avez-vous copié collé cela? Si oui, veuillez vérifier le nom db et le nom de la collection dans la requête. Si vous l'avez simplement tapé, vérifiez votre orthographe. L'erreur que vous obtenez signifie que vous avez mal orthographié quelque chose ... fonctionne pour moi (juste testé à nouveau) – peshkira

+0

utiliser vos-moments vos-moments --eval "var c = db.profile.find(); while (c.hasNext()) {printjson (c.next())} ">>" C: \ exp \ test.txt "où your-moments est le nom et le profil db est le nom de la collection. – QVSJ

12

Je ne connais aucun moyen de le faire à partir du shell mongo directement, mais vous pouvez obtenir mongoexport d'exécuter des requêtes et envoyer les résultats à un fichier avec le -q et les options -o:

mongoexport -h mongo.dev.priv -d models -c profiles -q '{ $query : { _id : "MRD461000" } }' -o MRD_Series1.json 

Le ci-dessus hits interroge la collection de profils dans la base de données des modèles en saisissant le document JSON pour _id = "MRD641000". Travaille pour moi.

+0

La réponse la plus simple. – Jim109

7

Utilisez cette

mongo db_name --username user --password password <query1.js>> result.txt 
1

Après avoir manqué le db besoin d'être la db réelle dans la réponse de Peshkira, voici une syntaxe générale pour une doublure en coquille (en supposant aucun mot de passe):

mongo <host>:<db name> --eval "var x = <db name>.<collection name>.<query>; while(x.hasNext()) { printjson(x.next()) }" >> out.txt 

Je l'ai testé à la fois sur mon Mac et sur Google Cloud Ubuntu 15 avec Mongo 3+.

-1

mongoexport --db nom_base_de_donnees --collection nom_collection --csv --out file_name.csv -f champ1, champ2, field3

+1

En incluant une explication de votre réponse, vous aiderez les autres utilisateurs de cette solution. – Steven

0

mongoexport --host 127.0.0.1 --port 27017 --username youruser -p yourpass -d yourDatabaseName -c collectionName --type csv --fields champ1, champ2 -q '{"champ1": 1495730914381}' --out report.csv

Questions connexes