【发布时间】:2011-12-29 02:33:05
【问题描述】:
对冗长的描述表示歉意。
我想对包含 1000 万条记录(大约 10G)的大型 Mongodb 集合中的每个文档进行转换。具体来说,我想对每个文档中的 ip 字段应用 geoip 转换,然后将结果记录附加到该文档,或者只是创建一个完整的其他记录,通过说 id 链接到这个记录(链接并不重要,我可以创建一个整个单独的记录)。然后我想按城市进行计数和分组-(我确实知道如何做最后一部分)。
我认为我不能使用 map-reduce 的主要原因是我无法在我的地图函数中调用 geoip 库(或者至少这是我认为存在的约束)。
所以我的中心问题是如何遍历集合中的每条记录应用转换 - 使用最有效的方法来做到这一点。
通过 Limit/skip 进行批处理是没有问题的,因为它会执行“表扫描”,并且会逐渐变慢。
有什么建议吗?
首选 Python 或 Js,因为我有这些 geoip 库,但欢迎使用其他语言的代码示例。
【问题讨论】: