sql >> Database >  >> NoSQL >> MongoDB

Is er een manier om MongoDB-shell-uitvoer 'mooi' af te drukken naar een bestand?

De shell biedt een aantal leuke maar verborgen functies omdat het een interactieve omgeving is.

Wanneer u opdrachten uitvoert vanuit een javascript-bestand via mongo commands.js, krijgt u niet helemaal hetzelfde gedrag.

Er zijn twee manieren om dit te omzeilen.

(1) nep de schaal en laat het denken dat je in de interactieve modus bent

$ mongo dbname << EOF > output.json
db.collection.find().pretty()
EOF

of
(2) gebruik Javascript om het resultaat van een find() . te vertalen in een afdrukbare JSON

mongo dbname command.js > output.json

waar command.js dit (of het equivalent daarvan) bevat:

printjson( db.collection.find().toArray() )

Dit zal de reeks resultaten behoorlijk afdrukken, inclusief [ ] - als je dat niet wilt, kun je de array herhalen en printjson() elk element.

Trouwens, als je maar één Javascript-statement gebruikt, hoef je het niet in een bestand te plaatsen, maar kun je het volgende gebruiken:

$ mongo --quiet dbname --eval 'printjson(db.collection.find().toArray())' > output.json


  1. Een gids voor het configureren van een load balancer in een MongoDB Sharded-cluster

  2. MongoDB-onveiligheidsniveaus en hoe ze te vermijden

  3. Sidekiq werkomstandigheden

  4. Hoe voer ik Redis uit op Windows 32 bit?