关于菜单的查询
来源:8-7 菜单列表递归实现(下)

慕粉3266517
2021-06-01
1、如果想要模糊查询,应该怎么写。如,菜单名称中输入“系统”,点击查询,列表应出现系统设置这一条。
2、如果单独查询子菜单名称,通过这个递归调用出不来,它不是从parentid为null开始的。
写回答
4回答
-
1、模糊查询:使用正则表达式,伪代码:
Menu.find({menuName: /系统/}) 或者 Menu.find({menuNane: {$regex: /系统/}})
2、查询子菜单:函数getTreeMenu,它的第二个参数的作用是用来指定要查询菜单的父菜单ID,并不是写死的null,你完全可以用某一个菜单的父菜单ID去查询,而不是调用getMenuTree时非要传null。
012021-06-01 -
河畔一角
2021-06-04
模糊查询,目前Mongo的官方提供正则的方式,这跟关系型数据库还是有很大的不同的,其它同学回答的都是正解。
1、Menu.find({menuNane: {$regex: /系统/}})
2、Menu.find({menuName: /系统/})
关于直接查询子菜单的问题,需要在后端分情况处理,的确不是有的子菜单不是以null开始的,所以需要提前对数据做判断,
如果查询出来的菜单parentId不是[null]说明是子菜单,则直接返回,不需要做递归处理
00 -
慕粉3266517
提问者
2021-06-02
2、如果查询子菜单或者查找名字为“查看”的按钮,还是没办法用树形显示,干脆直接用列表显示
// 如果查询条件不为空,直接返回查询结果.否则返回树形结果 if (JSON.stringify(params) != "{}") { ctx.body = util.success(menuList) } else { let treeList = getTreeMenu(menuList, null, []) ctx.body = util.success(treeList) }
00 -
慕粉3266517
提问者
2021-06-02
1、模糊查询将查询条件改为
if (menuName) params.menuName = { $regex: menuName }
00
相似问题