Mongo map减少了对文档树的查询

时间:2012-06-19 20:35:06

标签: mongodb mapreduce

我有一个现有的mongo数据库,其中集合中的所有文档都有一个父指针(例如Parent Links)。因此,走在树上很容易,而且常见的操作。

但是,我现在想要编写一个从集合中所有树根开始的map reduce作业,并从每个树的所有叶节点生成一些数据。因此,map reduce工作的输出集合应该是一系列的

{<root_id>, [<information from leafs associated with root_id>, ...]}.

如果有任何例子会非常感激。我甚至打印树的第二级的简单尝试都失败了。我可以不在map函数中运行查询吗?

mapf = function() {
    db.collection.find({"parent": this._id}).forEach(
         // This doesn't seem to work
    )
}

1 个答案:

答案 0 :(得分:1)

  

我可以不在地图功能中运行查询吗?

有点,但不要。

其中一个关键问题是“查询在哪里?”db引用是指本地数据库,但这不适用于分片。

另一个问题是,即使它确实有效,你也可以获得一个非常危险的工作的疯狂指数。 (你如何处理循环?

对于这类问题,我建议查看像Neo4J这样的图形数据库。