Mongodb Mongo-手动(重新)设置填充因子

Mongodb Mongo-手动(重新)设置填充因子,mongodb,Mongodb,我有一堆数据,我需要将它们植入mongo收藏。在高层,目标是将每个元素存储到父文档中,并定期更新数据库。这是一个长期运行的过程,我希望创建保存点,以防脚本出错。以下是伪代码: for element in dataset : { "akey" : adoc ... }[element["key"]]["elements"].append(element) if(periodically()) print(status())

我有一堆数据,我需要将它们植入mongo收藏。在高层,目标是将每个元素存储到父文档中,并定期更新数据库。这是一个长期运行的过程,我希望创建保存点,以防脚本出错。以下是伪代码:

for element in dataset :
    {
        "akey" : adoc
        ...
    }[element["key"]]["elements"].append(element)

    if(periodically())
        print(status())
        db.sums.update({"name":"akey"},adoc)
        ...

当我运行db.sums.stats时,我的paddingFactor接近4.0,因为mongo认为我的文档有增长的习惯。这是不幸的,因为我将从这里开始只添加大的静态文档。我现在可以运行compact,但这不会改变集合的填充因子。我可以等待填充因子收敛到1,但我必须记得稍后运行compact。那么现在有什么方法可以重置填充因子吗?

您可以在MongoDB 2.2+中指定一个可选的填充因子:

填充因子:可选。仅适用于MMAPv1存储引擎。指定压缩操作期间用作文档大小因子的填充。填充因子不影响压缩完成后后续记录分配的填充


我在我的问题中提到了这一点——我问的是如何更改后续记录分配的paddingFactor。@xavier您建议paddingFactor不会随compact而改变,它确实会改变。但是,如果您希望显式设置paddingFactor,则没有相应的方法。不要认为这值得投反对票-但这就是我问题的标题。如果你编辑你的答案来说明这是不可能的,也许从设计的角度来描述为什么,我会投你反对票。