orm

Nodejs+ Sequelize递归查询

特别声明:如果您喜欢小站的内容,可以点击 终身VIP¥188.00元 包年VIP¥88.00元 包季VIP¥28.00 包月VIP¥10.00元 进行全站阅读。 如果您对付费阅读有任何建议或想法,欢迎发送邮件至: 864479410@qq.com,或添加QQ:864479410(^_^)

引言

递归查询,本身实现上和Sequelize没有太大的关系,但是这里还是作为单独一讲,主要是日常项目中遇到的也非常多。

案例:多层级菜单

建表


菜单表,通过idpid,知道每个菜单父级id是谁,这样就形成了递归,一层一层寻找,只到没有没有为止。

举例:
(1)第一次找pid=0的菜单,这样就返回了所有最高级的父级
(2)第二次,根据第一次的结果id,找到他们下属的一级菜单
...

model配置

新建 db/model/menu.js ,配置如下:

/**
 * 菜单表
 */
var Sequelize = require('sequelize');
var {sequelize} = require('../sequelize.js');

var menu = sequelize.define('menu',{
     id: {
         type: Sequelize.BIGINT(20),
         primaryKey: true,
         allowNull: false,
         unique: true,
         autoIncrement: true
     },
     pid: Sequelize.STRING(20), // 父级
     name: Sequelize.STRING(255), // 名字
     create_time: Sequelize.DATE,
     update_time: Sequelize.DATE
 },{
     timestamps: false, // 不要默认时间戳 数据库没有时间戳字段时,设置为false,否则报错  SequelizeDatabaseError: Unknown column 'createdAt' in 'field list'
     freezeTableName: true 
 });

module.exports = menu;

递归查询

更多精彩内容,可以点击“立即支付”,查看隐藏内容哦!

内容查看价格3立即支付    升级VIP后免费升级VIP,支付前请先登录,支付前请先登录,支付前请先登录!
本站资源一次收费,永久下载!发现资源失效,联系站长恢复即可!由于源码具有可复制性、可传播性,一经购买,概不退货,购买前请再三确认!本站提供相关技术支持,网站底部联系即可。时间:周一 ~ 周五 9:30-18:00。谢谢合作!

VIP用户所有收费资源免费,登录后左上角点击 昵称 ,进入用户中心充值成为VIP会员!如果您已经登录,点击这里成为尊贵VIP用户!

(0)

本文由 Web秀 作者:Javan 发表,转载请注明来源!

热评文章

发表评论

邮箱地址不会被公开。 必填项已用*标注