sql >> Database teknologi >  >> NoSQL >> MongoDB

Er der en måde at "smuk" udskrive MongoDB shell output til en fil?

Skallen giver nogle gode, men skjulte funktioner, fordi det er et interaktivt miljø.

Når du kører kommandoer fra en javascript-fil via mongo commands.js, får du ikke helt identisk adfærd.

Der er to måder at undgå dette på.

(1) forfalske skallen og få den til at tro, at du er i interaktiv tilstand

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

eller
(2) brug Javascript til at oversætte resultatet af en find() til en printbar JSON

mongo dbname command.js > output.json

hvor command.js indeholder dette (eller tilsvarende):

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

Dette vil ret udskrive rækken af ​​resultater, inklusive [ ] - hvis du ikke ønsker det, kan du iterere over arrayet og printjson() hvert element.

Forresten, hvis du kun kører en enkelt Javascript-sætning, behøver du ikke at lægge den i en fil, og i stedet kan du bruge:

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


  1. Skalerbar måde at logge sideanmodningsdata fra en PHP-applikation?

  2. MongoDb c# driver find element i array efter feltværdi

  3. Hvorfor er en enkelt Jedis-instans ikke trådsikker?

  4. Django ValueError:Ingen rute fundet for stien 'ws/chat//'