sql >> Databáze >  >> NoSQL >> MongoDB

Existuje způsob, jak „pěkně“ vytisknout výstup shellu MongoDB do souboru?

Shell poskytuje některé pěkné, ale skryté funkce, protože se jedná o interaktivní prostředí.

Když spouštíte příkazy ze souboru javascript přes mongo commands.js, nedosáhnete zcela identického chování.

Existují dva způsoby, jak to obejít.

(1) předstírejte shell a přimějte jej, aby si myslel, že jste v interaktivním režimu

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

nebo
(2) použijte Javascript k překladu výsledku find() do tisknutelného JSON

mongo dbname command.js > output.json

kde command.js obsahuje toto (nebo jeho ekvivalent):

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

To pěkně vytiskne pole výsledků, včetně [ ] - pokud to nechcete, můžete pole iterovat a printjson() každý prvek.

Mimochodem, pokud spouštíte pouze jeden příkaz Javascript, nemusíte jej vkládat do souboru a místo toho můžete použít:

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


  1. Redis seznam vnořených klíčů

  2. Spring Data MongoDB – indexy, anotace a převodníky

  3. Jak uložit binární objekt v redis pomocí uzlu?

  4. Vícenásobné odkazy na schéma v jednom poli schémat - mongoose