Есть ли способ рассказать Монго о довольно печатном выходе? В настоящее время все выводится на одну строку, и ее трудно читать, особенно с вложенными массивами и документами.
(обратите внимание: это ответ на исходную версию вопроса, у которой не было требований для "default" )
Вы можете попросить его быть красивым.
db.collection.find().pretty()
Вы можете добавить
DBQuery.prototype._prettyShell = true
к вашему файлу в $HOME/.mongorc.js
, чтобы включить глобальную печать по умолчанию.
$HOME/.mongorc.js
: gist.github.com/mathrawka/6239405 Затем вы можете сделать что-то вроде db.users.find (). Ugly (), чтобы получить его без красивой печати.
(обратите внимание: это ответ на обновленный вопрос)
Вы можете просто сделать это в CLI:
echo DBQuery.prototype._prettyShell = true >> ~/.mongorc.js
И он всегда будет выводить хорошие результаты.
О, так что я думаю .pretty() равно:
db.collection.find().forEach(printjson);
Поскольку это в основном оболочка javascript, вы также можете использовать toArray()
:
db.collection.find().toArray()
Однако это будет печатать все документы коллекции в отличие от pretty()
, которые позволят вам выполнять итерацию.
См. http://docs.mongodb.org/manual/reference/method/cursor.toArray/
.toArray()
выводит лучше отформатированный JSON, чем .pretty()
. то есть: первая запись моей коллекции отличается от остальных (что может быть проблемой), но .pretty()
выдает ее как { "_id" : "VERSION", "v" : "1.5" }
- все .pretty()
одна строка, где .toArray()
отформатировал его так же, как остальные записи ..
Попробуйте Mongo-hacker (модуль node), он всегда печатает красиво. https://github.com/TylerBrock/mongo-hacker
Больше он улучшает оболочку mongo (поддерживает только ver > 2.4, текущий ver равен 3.0), например
Я использую пока в производстве env, пока нет проблем.
$HOME/.mongorc.js
.
db.collection.find().pretty()
выше команда сделает ваш результат следующим образом:
stu
- это имя моей коллекции, вместо этого вы должны использовать свое собственное имя коллекции. Я надеюсь, что скриншот поможет вам в хорошей форме.