Ответ 1
DBQuery.shellBatchSize = 300
сделает.
Документы MongoDB - Начало работы с оболочкой mongo - Выполнение запросов
db.foo.find().limit(300)
этого не сделает. Он по-прежнему распечатывает только 20 документов.
db.foo.find().toArray()
db.foo.find().forEach(printjson)
оба будут распечатывать очень расширенное представление каждого документа вместо 1-строчной версии для find()
:
DBQuery.shellBatchSize = 300
сделает.
Документы MongoDB - Начало работы с оболочкой mongo - Выполнение запросов
Вы можете использовать it
внутри оболочки для повторения следующих 20 результатов. Просто введите it
, если вы видите, что "имеет больше", и вы увидите следующие 20 элементов.
Из оболочки, если вы хотите показать все результаты, вы можете сделать db.collection.find().toArray()
, чтобы получить все результаты без него.
Может всегда:
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.
В оболочке mongo, если возвращенный курсор не назначен переменной с использованием ключевого слова var, курсор автоматически повторяется для доступа к первым 20 документам, соответствующим запросу. Вы можете установить переменную DBQuery.shellBatchSize для изменения количества автоматически повторяющихся документов.
Ссылка - https://docs.mongodb.com/v3.2/reference/method/db.collection.find/