В Mongo, как сделать так, чтобы результаты отображались при выполнении .find () так же, как при выполнении .findOne () - PullRequest
68 голосов
/ 20 июля 2011

findOne() приводит к созданию объекта json с симпатичной печатью.

find() приводит к искаженному объекту json.

Как сделать find() таким же, как findOne(), когда дело доходит до отображения в оболочке Монго?

Ответы [ 5 ]

148 голосов
/ 20 июля 2011

Если вы пишете сценарии с использованием javascript, вы можете использовать ответ dcrosta.Но если вы хотите печатать довольно непосредственно на интерактивной оболочке mongo, вам нужно добавить pretty () в ваши запросы find ().

Тип на корпусе: db.yourcollection.find().pretty()

19 голосов
/ 20 июля 2011

Объект курсора, возвращаемый find(), поддерживает forEach(), поэтому вы можете использовать:

db.foo.find().forEach(printjson)

Однако учтите, что в отличие от вывода по умолчанию find(), которое показывает первые 10 объектов, затемвы выбираете, продолжать ли итерацию или нет, forEach() будет повторять весь набор результатов.Таким образом, если ваш запрос возвращает много результатов, это может занять некоторое время и может оказаться не очень полезным.limit() твой друг здесь.

3 голосов
/ 17 ноября 2016

Правильный ответ уже предоставляется с использованием .pretty().

Однако, просто для справки, вы также можете вызвать .toArray () для курсора, чтобы получить документы в виде массива javascript JSON.

db.foo.find().toArray()
1 голос
/ 24 марта 2016

Удобный усилитель монго-оболочки mongo-hacker (http://mongodb -tools.com / tool / mongo-hacker / ) позволит вам сделать это и сделать еще более причудливые вещи.

0 голосов
/ 25 января 2018

Возможно, он не был доступен в момент, когда был задан вопрос, но чтобы вывод по умолчанию для всех find() запросов был красивым, я использую:

DBQuery.prototype._prettyShell = true

Я также добавляю следующее:

DBQuery.prototype.ugly = function() {
    this._prettyShell = false;
    return this;
}

, что позволяет мне уточнить результаты одного запроса find(), используя:

db.mycollection.find().ugly()

Обычно я добавляю оба объявления прототипа в мой файл ~/.mongorc.js, чтобы онидоступны во всех оболочках MONGO CLI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...