mongoose + express写自查寻接口时,以递归格式多级查询或aggregate查询

简介: mongoose + express写自查寻接口时,以递归格式多级查询或aggregate查询

第一种 aggregate查询

表结构



接口编写

router.get("/get_depart", async (req, res) => {
  let data = await departModel.aggregate([
    {
      $lookup: {
        from: "depart",
        localField: "_id",
        foreignField: "did",
        as: "children",
        pipeline:[
          {
            $lookup: {
              from: "depart",
              localField: "_id",
              foreignField: "did",
              as: "children",
              pipeline:[
                {
                  $lookup: {
                    from: "depart",
                    localField: "_id",
                    foreignField: "did",
                    as: "children",
                  }
                }
              ]
            }
          }
        ]
      }
    },
    {$match:{level:1}}
  ])
  res.send({
    code:200,
    data
  })
})

第二种 递归函数

使用时将其中所有的mid改成你的表自联结字段即可


router.get('/get_materialfy', async (req, res) => {
    try {
        cate = await materialClassfyModel.find().lean();
        let d = {}
        cate.forEach(i => {
            d[i._id] = i.mid;
        })
        /* 使用递归函数查询三级商品分类的信息 */
        function getCate(arr, fid = '') {
            return arr.filter(item => {
                if (('mid' in item ? item.mid.toString() : '') === fid.toString()) {
                    // item.fname = fid != '' ? d[fid] : '';
                    item.children = getCate(arr, item._id);
                    return true;
                }
            })
        }
        data = getCate(cate);
        res.send({
            code: 200,
            data
        })
    } catch (err) {
        console.log(err)
        return err
    }
})
相关文章
|
4月前
|
JavaScript 前端开发 中间件
Node.js—Express使用、Express 路由 、Express 中间件、托管静态资源、使用 Express 写接口、node.js链接sqlite数据库
Node.js—Express使用、Express 路由 、Express 中间件、托管静态资源、使用 Express 写接口、node.js链接sqlite数据库
125 0
|
5月前
|
中间件
使用 Express 框架开发数据爬取及展示接口
使用 Express 框架开发数据爬取及展示接口
42 0
|
9月前
|
JavaScript 中间件 API
使用Express写接口
使用Express写接口
73 0
|
9月前
|
JavaScript API
Node.js学习笔记----使用express编写接口
Node.js学习笔记----使用express编写接口
|
JSON 前端开发 JavaScript
使用Express写接口
使用Express写接口
143 0
使用Express写接口
|
JSON 前端开发 JavaScript
【node进阶】深度解析express框架---编写接口|解决跨域问题---下篇
【node进阶】深度解析express框架---编写接口|解决跨域问题---下篇
【node进阶】深度解析express框架---编写接口|解决跨域问题---下篇
|
安全 JavaScript 前端开发
【node进阶】深度解析express框架---编写接口|解决跨域问题---上篇
【node进阶】深度解析express框架---编写接口|解决跨域问题---上篇
|
JSON 开发框架 JavaScript
Node.js之Express、路由、中间件、接口跨域解决方案详解(附实例)
本文主要介绍了Node.js中Express、路由、中间件、接口跨域解决方案
692 2
Node.js之Express、路由、中间件、接口跨域解决方案详解(附实例)
|
前端开发
express搭建后端请求路由,前端进行访问对应的接口 后端解决跨域
express搭建后端请求路由,前端进行访问对应的接口 后端解决跨域
|
4月前
|
JSON JavaScript 前端开发
超级实用!详解Node.js中的util模块和express模块
超级实用!详解Node.js中的util模块和express模块