Красивая печать в оболочке MongoDB по умолчанию - PullRequest
469 голосов
/ 05 февраля 2012

Есть ли способ заставить Монго печатать довольно красиво? В настоящее время все выводится в одну строку, и их трудно читать, особенно с вложенными массивами и документами.

Ответы [ 8 ]

814 голосов
/ 05 февраля 2012

( примечание: это ответ на оригинальную версию вопроса, в которой не было требований для «по умолчанию» )

Вы можете попросить, чтобы это было красиво.

db.collection.find().pretty()
394 голосов
/ 09 июля 2012

Вы можете добавить

DBQuery.prototype._prettyShell = true

к вашему файлу в $HOME/.mongorc.js, чтобы включить красивую печать по умолчанию.

46 голосов
/ 05 февраля 2014

(примечание: это ответ на обновленный вопрос)

Вы можете просто сделать это на CLI:

echo DBQuery.prototype._prettyShell = true >> ~/.mongorc.js

И это всегда даст хорошие результаты.

16 голосов
/ 12 февраля 2013

Да, я думаю .pretty () равно:

db.collection.find().forEach(printjson);
16 голосов
/ 01 февраля 2013

Так как это в основном оболочка javascript, вы также можете использовать toArray():

db.collection.find().toArray()

Однако это будет печатать все документы коллекции в отличие от pretty(), что позволит вам выполнять итерации.См .: http://docs.mongodb.org/manual/reference/method/cursor.toArray/

8 голосов
/ 06 мая 2015

Попробуйте монго-хакер (модуль узла), он всегда печатает довольно.https://github.com/TylerBrock/mongo-hacker

Еще больше улучшена оболочка mongo (поддерживается только версия> 2.4, текущая версия 3.0), например

  • Раскраска
  • Дополнительные команды оболочки (считать документы/ count docs / etc)
  • Дополнения API (db.collection.find ({...}). last (), db.collection.find ({...}). reverse () и т. д.)
  • Aggregation Framework

Я использую в то время как в рабочей среде, никаких проблем пока нет.

1 голос
/ 13 мая 2019

Добрался до вопроса, но не смог разобраться, как распечатать его из внешне загруженного монго.Итак:

Это работает для консоли: и является предпочтительным в консоли, но не работает во внешнем моно-загруженном JavaScript:

db.quizes.find().pretty()

Этоработает во внешнем моно-загруженном javscript:

db.quizes.find().forEach(printjson)
0 голосов
/ 01 марта 2016

Проверьте это:

db.collection.find().pretty()
...