Как распечатать более 20 предметов (документов) в оболочке MongoDB?

db.foo.find().limit(300)

этого не сделает. Он по-прежнему распечатывает только 20 документов.

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

оба будут распечатывать очень расширенное представление каждого документа вместо 1-строчной версии для find():

Ответ 2

Вы можете использовать it внутри оболочки для повторения следующих 20 результатов. Просто введите it, если вы видите, что "имеет больше", и вы увидите следующие 20 элементов.

Ответ 3

Из оболочки, если вы хотите показать все результаты, вы можете сделать db.collection.find().toArray(), чтобы получить все результаты без него.

Ответ 4

Может всегда:

db.foo.find().forEach(function(f){print(tojson(f, '', true));});

Чтобы получить этот компактный вид.

Кроме того, мне очень полезно ограничить поля, возвращаемые find так:

db.foo.find({},{name:1}).forEach(function(f){print(tojson(f, '', true));});

который возвратит только поле _id и name из foo.

Ответ 5

В оболочке mongo, если возвращенный курсор не назначен переменной с использованием ключевого слова var, курсор автоматически повторяется для доступа к первым 20 документам, соответствующим запросу. Вы можете установить переменную DBQuery.shellBatchSize для изменения количества автоматически повторяющихся документов.

Ссылка - https://docs.mongodb.com/v3.2/reference/method/db.collection.find/