2012-08-06 40 views
0

我在python中使用了MongoEngine map_reduce功能。MongoEngine map_reduce合并集合

根据位于here的MongoDB文档,可以指定处理简化数据的方式。具体而言,可以为“替换”,“合并”,“减少”或执行映射/缩减“内联”提供参数。

我无法找到有关如何为MongoEngine map_reduce函数指定类似参数的说明。该功能的文档可以在here找到。

有人可以解释一下如何将map_reduce操作的结果合并到一个已经存在的集合中吗?我无法内联执行map_reduce操作。

我使用下面的代码来执行map_reduce操作:

map_f = """ 
    #javascript code 
""" 

reduce_f = """ 
    #javascript code 
""" 

for i in FOO.objects.map_reduce(map_f, reduce_f, "FOOResult"): 
    pass 

以上,“FOOResult”是一个新的集合,其中一个特定的密钥将分别出现精简操作时被覆盖。我更愿意指定一些能让我将相同的密钥插入已存在的集合中的东西。

谢谢你的帮助。

回答

3

嗯,我觉得有点傻,没有认识到这一点。

解决方案:

for i in FOO.objects.map_reduce(map_f, reduce_f, {"merge":"COLLECTION_NAME"}): 
    pass 
+0

良好的工作 - 请标记为回答帮助别人,如果你有时间的门票添加到http://github.com/MongoEngine/mongoengine暗示的文档都更加清楚:) – Ross 2012-08-07 07:25:01

+0

谢谢!我刚刚添加了一张问题单。我会将解决方案标记为已解决,但在这样做之前我必须等待48小时(显然这是堆栈溢出策略?) – 2012-08-08 02:38:34