RoboMongo:不显示所有文档
Posted
技术标签:
【中文标题】RoboMongo:不显示所有文档【英文标题】:RoboMongo: Doesn't display all documents 【发布时间】:2018-05-07 13:40:42 【问题描述】:当我打开一个集合时,它只显示前 50 个文档,而不是所有文档。如何使 RoboMongo 显示集合中的所有文档(最好是自动)?
robomongo result
【问题讨论】:
与您的问题无关 MongoDb 公司创建了一个免费使用的工具来查看和操作数据库数据。 mongodb-compass. @GrégoryNEUT 该工具不允许您更改返回文档的批量大小,因此不是解决此问题的可行替代方案 @camslice mongodb-compass 为您提供集合中内容的完整分页。所以这个问题根本不适用。 @GrégoryNEUT RoboMongo(或 Robo 3T)也提供完整分页,其默认批量大小为 50。您可以通过配置文件将此大小更改为您喜欢的任何内容(请参阅下面的答案)。但是 mongodb-compass 的默认批量大小为 20,您无法通过配置文件或任何应用程序设置来更改它。该问题不要求“完整分页”,而是要求查看“所有[文档]”。 【参考方案1】:您可以更改默认批量大小:
编辑robomongo.json
(在 Linux/MacOS 上为 ~/.config/robomongo/<version>/
,在 Windows 上为 c:\Users\YourName\.config\<version>/
)
更改batchSize
属性,您可以选择一个固定大小的值(例如100
)或选择0
表示“所有文档”(h/t 到@PaulRey,尽管我在使用此符号,请参阅此问题下方的 cmets):
"batchSize" : 100,
...
保存robomongo.json
并重启RoboMongo
这允许您增加默认批量大小,但可能会导致等待结果的时间更长。
更多详情in the docs.
【讨论】:
您可以将值 0 设置为显然解释为“所有”文档。它在 UI 中工作。 @PaulRey 谢谢,虽然在我回答的早期版本中,我实际上建议0
作为符号,这意味着:“所有文档”,然后我通过在 robomongo.json 中设置 batchSize: 0
进行了测试(在 Robomongo 0.9.0-RC3 上)并得到混合结果,因此我编辑了答案以删除该建议。
可以确认这仍然适用于版本 1.3.1,但是 JSON 文件的位置和名称已随时间变化:github.com/Studio3T/robomongo/wiki/Robomongo-Config-File-Guide 对于 v1.3.1,它是:.3T/robo-3t/1.3.1/robo3t.json
这对我不起作用,当我在 json 中设置值并重新启动程序时,它被设置回 50...
@craastad 在编辑robo3t.json
之前你必须先停止Robo 3T,然后编辑你的配置,保存,然后你可以重新启动程序。【参考方案2】:
2019 年 12 月 6 日更新:初始解决方案不适用于 Robomongo v1.3.1。如果输入 0,Robomongo 会抛出错误。请参阅 EDIT 1 了解新的解决方案。
右上角有一个输入,您可以在查询下方更改显示文档的数量。将其更改为 0,然后按 Enter。它会加载所有文档。
即使 50 之后再次出现,您也会显示所有文档。
编辑 1:以上问题似乎在较新的版本中已修复(从 v1.3.1 开始)。
根据 cmets 中 @learnsomemore 的建议,您可以在查询前添加 DBQuery.shellBatchSize = 500;
以更改返回的数组大小。
这最初是在a comment by @davidm06 in the GitHub issue "Aggregate only shows 50 results #1157" from the RoboMongo public repository 中给出的。
【讨论】:
也许他们认为这是一个错误并修复了它,它会抛出一个错误,它在 v1.3.1 中必须大于 0。如果我让它超过 50,它仍然不会给我超过 50。 我最近没有测试,也许这是固定的! :) 我刚刚在他们的 github 问题线程上看到了这个。请更新您的答案以包括我测试过的作品。 github.com/Studio3T/robomongo/issues/… 只需在查询上方添加此内容DBQuery.shellBatchSize = 500;
【参考方案3】:
您也可以在末尾使用toArray() 一次获得整个结果。
【讨论】:
以上是关于RoboMongo:不显示所有文档的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Robomongo 从 MongoDB 导出 JSON