为了减少现有集合的大小,我从集合中的文档中删除了一些不需要的字段。之后和之前我运行集合统计信息来检查大小,但它没有改变。我缺少一些东西(比如更新任何东西)来反映我的统计数据中尺寸减小的情况。
我在本地 PC 上运行它,没有任何其他节点。
正如 Daniel F 在对该问题的评论中提到的,这在 mongo shell 中对我有用:
use your-database-name
db.runCommand({ compact: "your-collection-name" })
我知道这是一个老问题,但我会在这里添加以防万一。仔细阅读有关 compact 的文档,因为它会导致其运行的节点停止占用大部分流量,直到完成为止。 之前的所有想法都有其用例,我将添加另一个可能最合适的想法。如果您能够查询要从集合中保留的子集,并且它比整个集合小很多,并且您有大量其他集合,您不想等待从头开始恢复,那么您可以编写子查询到另一个集合,应用索引,完成后计划一个短暂的停机时间(如果需要)并切换集合。