MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Czy istnieje sposób na "ładne" wydrukowanie danych wyjściowych powłoki MongoDB do pliku?

Powłoka zapewnia kilka ładnych, ale ukrytych funkcji, ponieważ jest środowiskiem interaktywnym.

Kiedy uruchamiasz polecenia z pliku javascript za pośrednictwem mongo commands.js, nie uzyskasz całkiem identycznego zachowania.

Można to obejść na dwa sposoby.

(1) sfałszować powłokę i sprawić, by myślała, że ​​jesteś w trybie interaktywnym

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

lub
(2) użyj Javascript do przetłumaczenia wyniku find() w drukowalny JSON

mongo dbname command.js > output.json

gdzie command.js zawiera to (lub jego odpowiednik):

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

Spowoduje to wyświetlenie tablicy wyników, w tym [ ] - jeśli nie chcesz, możesz iterować po tablicy i printjson() każdy element.

Przy okazji, jeśli używasz tylko jednej instrukcji JavaScript, nie musisz umieszczać jej w pliku, a zamiast tego możesz użyć:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - Indeks nie jest używany podczas sortowania i ograniczania zapytań z zakresem

  2. Czy jest jakaś opcja ograniczenia użycia pamięci mongodb?

  3. MongoDB select count(distinct x) na indeksowanej kolumnie — zliczanie unikalnych wyników dla dużych zbiorów danych

  4. Błąd podczas łączenia się z MongoDb Atlas Server

  5. Nieoczekiwany kod wyjścia mongo 100. Ponowne uruchamianie