2012-02-05 2 views

ответ

733

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

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

db.collection.find().pretty() 
+16

Если вы хотите, чтобы вывести цветные + другие улучшения, проверьте https://github.com/TylerBrock/mongo-hacker @SAFX –

365

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

DBQuery.prototype._prettyShell = true 

в файл в $HOME/.mongorc.js для того, чтобы довольно печать глобально по умолчанию.

+10

Вы хотите создать пользовательскую функцию, которая отключит ее для вас. Добавьте это в свой '$ HOME /.mongorc.js': https://gist.github.com/mathrawka/6239405 Затем вы можете сделать что-то вроде db.users.find(). ugly(), чтобы получить его без красивой печати. – staackuser2

+4

+1 Это замечательно. Для тех, у кого нет файла .mongorc.js в папке $ HOME; вы можете создать этот файл и добавить в него команды. После перезапуска оболочки она работает! –

+0

Как я могу проверить в cli или в оболочке mongo, что этот параметр включен? Я имею в виду, есть ли для него специальная команда, например 'mongo --checkConf 'pretty'', а не путем вызова' db.collection.find(). Limit (1) ' – Green

14

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

db.collection.find().toArray() 

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

+1

Интересно, что из консоли' .toArray() 'функция выводит лучше форматированный JSON, чем функцию' .pretty() '. т.е.: первая запись моей коллекции отличается от остальной (что может быть проблемой), но '.pretty()' выгружает ее как '{" _id ":" VERSION "," v ":" 1.5 "} '- все на одной строке, где' .toArray() 'отформатировал ее так же хорошо, как и остальные записи. – wasatchwizard

14

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

db.collection.find().forEach(printjson); 
40

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

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

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

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

+0

Не работал для меня - используя MongoDB 2.6.6 и (о мой) ZSH. – jononomo

+1

Это сработало для меня отлично. | Версия оболочки MongoDB: 2.6.7 и Oh-My-Zsh [версия e55c715] (https://github.com/robbyrussell/oh-my-zsh/tree/e55c715508a2f652fed741f2047c66dda2c6e5b0) – tjfwalker

6

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

Далее он усиливает Монго оболочка (поддерживает только версии> 2.4, текущая версия 3,0), как

  • расцвечивание
  • Дополнительных команд оболочек (количество документов/подсчет документов/и т.д.)
  • API дополнения (db.collection.find ({...}). (последний), db.collection.find ({...}). обратный() и т.д.)
  • Aggregation Framework

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

+0

Что делать, если у меня нет mongodb, просто установлен метеор? – pihentagy

+0

Примечание: при установке mongo-hacker с использованием npm он, по-видимому, перезаписывает '$ HOME/.mongorc.js'. – Hubro

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

выше команды сделает ваш результат: Using Pretty command

stu это имя моей коллекции, вы должны использовать свое собственное имя коллекции вместо него. Я надеюсь, что скриншот поможет вам в хорошей форме.

Смежные вопросы