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
    }
})
相关文章
|
7月前
|
存储 JavaScript 数据库
nodejs中express框架实现增删改查接口
nodejs中express框架实现增删改查接口
|
3月前
|
JavaScript 前端开发
vue配合axios连接express搭建的node服务器接口_简单案例
文章介绍了如何使用Express框架搭建一个简单的Node服务器,并使用Vue结合Axios进行前端开发和接口调用,同时讨论了开发过程中遇到的跨域问题及其解决方案。
68 0
vue配合axios连接express搭建的node服务器接口_简单案例
|
6月前
|
SQL JavaScript 前端开发
简单用Nodejs + express 编写接口
【6月更文挑战第3天】该文介绍了如何在Node.js和Express中创建GET和POST接口。首先,简要提到了准备工作,建议查阅上一篇文章。接着展示了GET接口的示例,说明可以直接在浏览器中请求。然后,详细解释了POST接口的步骤,包括引入Express模块、设置路由处理程序、解析请求体及处理请求。最后,强调了编写接口时应注意错误处理、安全性、中间件使用、路由组织、日志记录、性能优化和测试等关键点。作者以肥晨的身份结尾,鼓励关注其分享的前端学习资料和技术动态。
215 1
|
7月前
|
JavaScript 前端开发 中间件
Node.js—Express使用、Express 路由 、Express 中间件、托管静态资源、使用 Express 写接口、node.js链接sqlite数据库
Node.js—Express使用、Express 路由 、Express 中间件、托管静态资源、使用 Express 写接口、node.js链接sqlite数据库
250 0
|
7月前
|
中间件
使用 Express 框架开发数据爬取及展示接口
使用 Express 框架开发数据爬取及展示接口
78 0
|
JavaScript 中间件 API
使用Express写接口
使用Express写接口
110 0
|
JavaScript API
Node.js学习笔记----使用express编写接口
Node.js学习笔记----使用express编写接口
|
JSON 开发框架 JavaScript
Node.js之Express、路由、中间件、接口跨域解决方案详解(附实例)
本文主要介绍了Node.js中Express、路由、中间件、接口跨域解决方案
1291 15
Node.js之Express、路由、中间件、接口跨域解决方案详解(附实例)
|
JSON 前端开发 JavaScript
使用Express写接口
使用Express写接口
179 0
使用Express写接口
|
JSON 前端开发 JavaScript
【node进阶】深度解析express框架---编写接口|解决跨域问题---下篇
【node进阶】深度解析express框架---编写接口|解决跨域问题---下篇
【node进阶】深度解析express框架---编写接口|解决跨域问题---下篇