循环查找文档

时间:2015-08-13 20:50:35

标签: mongodb

我对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?

1 个答案:

答案 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)
            }
        }
    )

希望它可以帮助别人