给定大量(数百万+)文档集合,类似于:
{ _id : ObjectId, "a" : 3, "b" : 5 }
直接在服务器上处理这些文档并将结果添加到同一集合中的每个文档的最有效方法是什么?例如,添加一个c
值等于的键a+b
。
{ _id : ObjectId, "a" : 3, "b" : 5, "c" : 8 }
我更喜欢在外壳中执行此操作。
似乎这find().forEach()
会浪费时间在 db 和 shell 之间传输,并且mapReduce()
似乎打算将对象组处理成聚合数据(尽管我可能会误解)。
编辑:我更喜欢不阻塞的解决方案,如果有一个(除了在客户端上使用光标)......