我对mongodb比较新,所以请耐心等待。假设我的收藏中有以下文件:
{_id:"3",name:'three',parentId:"2.1"},
{_id:"2.1",name:'two1',parentId:"1"},
{_id:"2.2",name:'two2',parentId:"1"},
{_id:"1",name:'one'}
我有一个db.mycoll.find({name:"three"})
,它返回带有_id 3的文档。我需要基于这个带有_id 1的查找文档。
基本上这代表了文件夹结构。所以顶级是“一个”,其中有两个1'和' two2'。 ' two1'反过来有三个'。拥有'三'我需要得到它的顶级父母。有没有办法在mongo中执行此操作,还是必须将结果返回给客户端,在那里处理它们并为每次迭代调用mongo?
答案 0 :(得分:0)
这对我有用:
...find().forEach(
function getParent(itemId) {
var sub = db.mycoll.findOne({_id: itemId});
if(sub) {
if(sub.parentId) {
getParent(sub.parentId)
}
else /*top level*/
print(sub.name)
}
}
)
希望它可以帮助别人