[英]Get data from mongodb with dynamic nested levels using nodejs and mongoose
For example I have one table:例如我有一张桌子:
Menuid, menuname, parentid, levelid
-- this is table Menuid, menuname, parentid, levelid
-- 这是表
Consider the values:考虑以下值:
Menuid:Pg, menuname:mainprogram, programid:'', levelid: 1
Menuid:sb, menuname:subprogram, programid:'Pg', levelid: 2
Menuid:cb, menuname:childprogram, programid:'sb', levelid: 3
Menuid:Pg2, menuname:mainprogram2, programid:'', levelid: 1
Output:输出:
[ {
Menuid:'Pg',
Menuname:'mainprogram',
Children:[ {
Menuid:'sb',
Menuname:'subprogram',
Children:[ {
Menuid:'cb',
Menuname:'childprogram'
} ]
} ]
}, {
Menuid:'Pg2',
Menuname:'mainprogram2'
} ]
getting menu code获取菜单代码
exports.getMenus = (req, res, next) => {
// need clarification
}
model for menu菜单模型
const mongoose = require('mongoose');
const uniqueValidator = require('mongoose-unique-validator');
const menuSchema = mongoose.Schema({
menuId: {
type: String,
required: true,
unique: true
},
menuName: {
type: String,
required: true
},
icon: {
type: String,
required: false
},
type: {
type: String,
required: false
},
url: {
type: String,
required: false
},
levelId: {
type: Number,
required: true
},
programId: {
type: String,
required: false
},
order: {
type: Number,
required: true
},
createdBy: {
type: String,
require: false
},
createdDate: {
type: Date,
require: false,
},
updatedBy: {
type: String,
default: '',
require: false
},
updatedDate: {
type: Date,
default: '',
require: false,
},
});
menuSchema.plugin(uniqueValidator);
module.exports = mongoose.model('Menu', menuSchema);
router:路由器:
router.get('/getmenus/:id', MenuController.getMenus);
user request from client like http://localhost:3000/api/menu/getmenus/pg getmenus after slash word is a required menus under submenus来自客户端的用户请求,如http://localhost:3000/api/menu/getmenus/pg getmenus 斜杠后的 getmenus 是子菜单下的必需菜单
Note: if each data has order menans based on menu object need to render with that order.注意:如果每个数据都有基于菜单对象的顺序,则需要按照该顺序进行渲染。 Please provide any solution.
请提供任何解决方案。
请参阅以下链接,您的预期行为将在此 graphlookup https://docs.mongodb.com/manual/reference/operator/aggregation/graphLookup/ 中可用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.