用express mongo显示类别

时间:2016-08-09 08:29:25

标签: javascript node.js mongodb express pug

我有像mongo一样的数据 根

 {'id':id,'name':'root','child'=['id1','id2','id3']}

为CH1:

{'id':id1,'name':'chi1','child'=['id11','id12','id13']}

χ2

 {'id':id1,'name':'chi2','child'=['id21','id22','id23']}

chi11

 {'id':id1,'name':'chi11','child'=['id111','id112','id113']}

现在我想在模板中显示类别:

root.name->chi1.name->chi11.name
         ->chi2.name

如果我们可以从父母那里查询孩子。

2 个答案:

答案 0 :(得分:1)

您可以尝试以下查询: -

db.collName.find({_id : {$in:['id1','id2','id3']}}).toArray(function(err, results){
     console.log(results); //Will give you array of child results.
})

现在,您可以遍历结果数组并获取相应的子名称。

请参阅$in-doc以了解如何在查询中使用$in

编辑: -

使用以下内容: -

function getResults(id, callback)
{ 
    db.collection.find({_id : parentId}).toArray(function(err, pres)
    {
        db.collName.find({_id : {$in:pres[0].child}}).toArray(
          function(err, results){
            console.log(results); //Will give you array of child results.
            console.log(pres[0]); // Result of root;

             callback(err, results, pres) ; //Return all the results
         })
     });
}

希望这会对你有所帮助。

答案 1 :(得分:0)

Mongoose - finding subdocuments by criteria 使用mongoose 4.0 populate是查询子对象的最佳解决方案 http://mongoosejs.com/docs/populate.html