首页 > 解决方案 > 猫鼬如何从对象中查找所有数据?

问题描述

只是我想查找具有相同对象 ID 但不工作的所有数据

   app.get("/admin/phase/:level", function(req,res){

            Level.findOne({_id: req.params.level},function(err,onelevel){
            console.log(onelevel._id)
            Semster.find({level: onelevel._id},function(err,semster){

                    Module.find({semster: semster._id } , function(err , modules){
                    console.log(semster)
                        res.render("semster",{onelevels: onelevel, semsters: semster, modules: modules})})})})});

标签: databasemongodbexpressmongoosenosql

解决方案


我建议在您的数据库查询中使用async 和 await以便猫鼬有足够的时间来查找文档。话虽如此,我将使用 try-catch 块来响应查询中的错误。

app.get("/admin/phase/:level",async function(req,res){
  try{
    const onelevel = await Level.findOne({_id: req.params.level});
    const semster = await Semster.find({level: onelevel._id});
    let modules = [];
    for(let i = 0; i < semster.length; i++){
      let module = await Module.find({semster: semster[i]._id });
      modules.push(...module)
    };

        res.render("semster",{
            onelevels: onelevel,
            semsters: semster,
            modules: modules})
        })
      })
    })
  catch(err){
    res.status(500).render("/uhOhPage",{
        message: err.message
    })
 });

推荐阅读