MongoDB递归查询

C 2022-2-24 1568

可利用MongoDB的聚合($graphLookup)特性:

https://docs.mongodb.com/manual/reference/operator/aggregation/graphLookup/

db.sites.aggregate([ //在sites这个表建立多个查询
{ //第一步,在该表中匹配,找到起始行
$match: { //使用$match方法进行精准匹配
name: 'NanShan' //我们查询南山区,找到南山区所在的行
}
},
{ //第二步,在上一步结果的基础上继续查询
$graphLookup: { //使用$graphLookup方法进行聚合查询
from: "sites", //查询哪个表,因为数据都在sites表所以一样
connectFromField: "parent", //从哪个字段开始递归
startWith: "$parent", //起始字段的数值,这里动态引用该行$parent的值
connectToField: "name", //起始字段和其它行哪个字段一致,这里和name一样
as: "result" //输出结果集名称
}
}
])

看不懂的话研究一下这个示例:

https://stackoverflow.com/questions/42787293/mongodb-recursive-query

还是搞不明白的话我建议就别用了……

最新回复 (0)
返回
发新帖