2012-10-10 9 views

risposta

58

si può provare la seguente dalla riga di comando

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

a patto di avere una banca dati denominata 'db' attivo sulla macchina locale e una collezione chiamata 'collezione' questo esporterà tutti i record in un file chiamato test. txt

Se si dispone di uno script più lungo che si desidera eseguire è anche possibile creare un file script.js e basta usare

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

Spero che questo aiuta

+1

mi mostra un errore - mancante; prima dichiarazione (shell): 1 – QVSJ

+0

hai copiato questo incollato? in caso affermativo, si prega di ricontrollare il nome db e il nome della raccolta nella query. Se l'hai appena scritto, controlla l'ortografia. L'errore che si ottiene significa che si è scritto qualcosa in modo errato ... funziona per me (appena testato di nuovo) – peshkira

+0

utilizza i tuoi momenti - momenti --eval "var c = db.profile.find(); while (c.hasNext()) {printjson (c.next())} ">>" C: \ exp \ test.txt "dove your-moments è il nome db e il profilo è il nome della raccolta. – QVSJ

12

Non conosco nessun modo per farlo dalla shell mongo direttamente, ma è possibile ottenere mongoexport per eseguire query e inviare i risultati a un file con il -q e opzioni -o:

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

Il sopra hits interroga la raccolta dei profili nel database dei modelli che acquisisce il documento JSON per _id = "MRD641000". Per me va bene.

+0

Risposta più semplice. – Jim109

7

Utilizzare questa

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

Dopo aver mancato il db che necessitano di essere il db reale in risposta di Peshkira, ecco un sintassi generale per un uno di linea in guscio (supponendo che nessuna password):

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

L'ho provato sia sul mio Mac che su Google cloud Ubuntu 15 con Mongo 3+.

-1

mongoexport --db nome_db --collection nome_raccolta --csv --out file_name.csv -f campo1, campo2, campo3

+1

Includere alcune spiegazioni della tua risposta aiuterà gli altri a trovare questa soluzione. – Steven

0

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

Problemi correlati