koa中使用mongoose的一个问题
const mongoose = require('mongoose');
const menu = new mongoose.Schema({
name:{
unique:true,
type:String,
required:true
},
pid:{
display:'父节点',
default:0,
type:mongoose.Schema.Types.Mixed
},
displayName:{
unique:true,
type:String,
required:true
},
description:{
type:String,
},
children:[] //希望这里是pid=_id的集合
})
module.exports = mongoose.model('Menu',menu)
详细描述
这个表是一个菜单 pid为0 则说明是最顶级的菜单 ,子集菜单的pid为父级的_id 这里children 怎样能返回 菜单的pid为_id的集合即
[
{
name:"肉类",
pid:0,
_id:"5dc8d37318832f19f45c2b8d",
children:[{
name:"猪肉",
pid:'5dc8d37318832f19f45c2b8d',
_id:"5dc8d37XXXXXXXd"
},{
name:"牛肉",
pid:'5dc8d37318832f19f45c2b8d',
_id:"5dc8d373XXXXXX2b8d"
}]
},
{
name:"猪肉",
pid:'5dc8d37318832f19f45c2b8d',
_id:"5dc8d37XXXXXXXd"
},{
name:"牛肉",
pid:'5dc8d37318832f19f45c2b8d',
_id:"5dc8d373XXXXXX2b8d"
},
{
name:"蔬菜",
pid:'0',
_id:"5dc8d373XXXXX222222b8d"
},
]
能否在表中怎样操作?还是说只能在添加子类的时候再获取父级的pid 再找到父级id 写入children?
希望在数据库中children 不写入数据 但是请求的时候会将children返回 ,因为数据其实在表里都有没必要重复添加吧 请问该如何操作呢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
之前看api文档看到处理方法,没试过,看到你这个问题,刚好我也想亲自试下。
graphLookup
一下是我写的完整案例代码,可运行:
index.js
输出结果