我必须为我公司的一个客户做一些数据处理。他们有一个大约4.7GB数据的数据库。我需要为使用mongo文档的两个属性和外部引用计算的每个文档添加一个字段。
我的问题是,我不能做collection.find()因为Node.js内存不足。迭代整个集合的最佳方法是什么,这个集合太大而无法通过一次调用来加载?
答案 0 :(得分:4)
你可能内存不足,不是因为NilClass
,而是因为你试图用args.reject! { |key, value| value == NilClass }
之类的东西一次性抛弃它。
对大于内存的结果集进行操作的正确方法是使用游标。以下是您在mongo控制台中的操作方式:
db.collection.find()