我有一个现有的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
)
}
答案 0 :(得分:1)
我可以不在地图功能中运行查询吗?
有点,但不要。
其中一个关键问题是“查询在哪里?”。 db
引用是指本地数据库,但这不适用于分片。
另一个问题是,即使它确实有效,你也可以获得一个非常危险的工作的疯狂指数。 (你如何处理循环?)
对于这类问题,我建议查看像Neo4J这样的图形数据库。