Mongodb Mongo-手动(重新)设置填充因子
我有一堆数据,我需要将它们植入mongo收藏。在高层,目标是将每个元素存储到父文档中,并定期更新数据库。这是一个长期运行的过程,我希望创建保存点,以防脚本出错。以下是伪代码:Mongodb Mongo-手动(重新)设置填充因子,mongodb,Mongodb,我有一堆数据,我需要将它们植入mongo收藏。在高层,目标是将每个元素存储到父文档中,并定期更新数据库。这是一个长期运行的过程,我希望创建保存点,以防脚本出错。以下是伪代码: for element in dataset : { "akey" : adoc ... }[element["key"]]["elements"].append(element) if(periodically()) print(status())
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,则没有相应的方法。不要认为这值得投反对票-但这就是我问题的标题。如果你编辑你的答案来说明这是不可能的,也许从设计的角度来描述为什么,我会投你反对票。