【问题标题】:How to paginate output inside mongo shell如何在 mongo shell 中对输出进行分页
【发布时间】:2014-06-04 10:57:04
【问题描述】:

是否可以从 mongo shell 中将结果通过管道传输到寻呼机?

mysql cli 等效项是:

mysql> 少分页

【问题讨论】:

    标签: mongodb usability mongodb-shell


    【解决方案1】:

    您可以尝试使用 mongo --eval 选项。比如:

    mongo <db> --quiet --eval '<query>' | less
    

    【讨论】:

    • 但是你失去了 mongo shell 的自动完成功能
    【解决方案2】:

    如果返回的游标未分配给变量,Mongo shell 已经对结果进行了分页。来自文档:

    ...在 mongo shell 中,如果返回的游标未分配给 变量使用 var 关键字,则光标自动 迭代多达 20 次以打印前 20 个文档 匹配查询。 mongo shell 会提示 Type it to iterate 再来 20 次。

    您可以设置 DBQuery.shellBatchSize 属性来更改数字 从默认值 20 开始的迭代次数。

    【讨论】:

    • 不是我想要的。这仅根据结果的数量进行分页,即使内容溢出屏幕高度,而且我必须键入“它”才能移动到下一组记录。例如。在 mongo 中,搜索 db.users.find().pretty() 会溢出屏幕高度,即使 DBQuery.shellBatchSize = 1 -> i.imgur.com/VwGJYqr.png 使用 mysql 分页器,结果会根据屏幕高度进行分页,无限制;所以 "select * from users\G" 给了我 -> i.imgur.com/fCsj6P9.png 你可以看到我什至可以在缓冲的结果中搜索。
    • @davidmh 如果我没记错的话,MongoDB 没有你想要的。您可能可以根据自己的意愿编写一个脚本来进行手动格式化。
    【解决方案3】:

    这似乎不可能,但你可以输出到一个文件,然后在另一个终端用寻呼机读取你的文件:

    $ mongo | tee file.txt
    

    Printing Mongo query output to a file while in the mongo shell

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 2015-04-11
      • 2014-04-29
      • 1970-01-01
      相关资源
      最近更新 更多