MongoDB 命令“compact”不起作用

Dmi*_*hev 6 database-administration mongodb

我有一个文档集合,其中存储了一组数字。该集合大约每 10 秒就会补充新文档。我每天都会运行一个脚本来处理这个数组,并在文档中只留下一个数字。经过 3 个月的数据收集后,我想释放磁盘空间。以下是 Robomongo 集合的统计信息:

{
    "ns" : "orderbook",
    "count" : 5363208,
    "size" : 844457120,
    "avgObjSize" : 157,
    "storageSize" : 2795139072.0,
    "capped" : false,
    "wiredTiger" : {
        "metadata" : {
            "formatVersion" : 1
        }
    }
    "nindexes" : 2,
    "totalIndexSize" : 144482304,
    "indexSizes" : {
        "_id_" : 90615808,
        "date_1" : 53866496
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,存储大小远大于大小。我希望该命令compact将释放磁盘空间。

我在 mongo shell 中做什么:

use trading
db.runCommand({compact:'orderbook', force: true})
Run Code Online (Sandbox Code Playgroud)

答案是

{“好的”:1}

来自 /var/log/mongodb/mongod.log 的日志:

2016-12-26T11:19:55.468 + 0300我命令[conn7]紧凑交易。orderbook开始,选项:paddingMode:NONE validateDocuments:1

2016-12-26T11:19:55.562+0300 I 命令 [conn7] 紧凑交易.orderbook 结束

什么都没发生。storageSize 具有相同的值。

有任何想法吗?我究竟做错了什么?