如何快速更新具有复杂函数的Mongo文档字符串字段

时间:2012-09-27 07:32:28

标签: performance mongodb

使用复杂功能更新Mongo数据库中文档的最快方法是什么,比如字符串搜索/替换或sqrt计算?

由于缺少此类操作,例如一个$replaceupdate是不可能的(这可能是最快的,因为在我的测试集合中,在一些100k对象上设置一个字段只需要大约50毫秒)。

当我简单地遍历所有文档时,大约需要45秒。当我将查询限制在更新期间使用的字段时,它会快一点。

这个时间当然会在较大的集合上变大,因此问题是否有比迭代更快的方式(例如通过地图减少作业?)。

1 个答案:

答案 0 :(得分:0)

否:)如果没有对此类功能的本机支持,您将会遇到read-> modify->写入方法。这就是说,如果你可以在一台机器上写一个100k对象的字段,在50ms内管理它,如果你必须读取,修改和写入那些相同的文件,那么该过程不应该花费近45秒。您确定瓶颈是数据库而不是正在运行的机器吗?您确定要进行适当的批处理而不是按文档进行更新吗?