在 sql 下, 方案2更好. 在 mongo 下, 方案1更好.

不知道你的这个项目中有没有用户权限组的概念.

如果有权限组的话, 就是一个权限组的 collection 里面, 每个权限下保存了一个菜单项的数组.

如果没有权限组的话, 就可以按照你说的方案1, 在每个用户表里, 或者单独的用户权限表里, 保存一个菜单数组.

当然, 保存菜单项的 id 数组或许更合适.

mongo 里面数组也是可以建立索引的, 查询也很方便.

另外, 也可以参考 mongo 自身的权限系统, 其权限设置也是保存在 mongo 数据库内的, 通常都是 admin 库下的 users 表. 如果你的 mongo 开启了权限管理, 并且权限库名字就叫 admin, 则可以用以下命令查看:

> use admin

switched to db admin

> show users

{

"_id" : "admin.admin",

"user" : "admin",

"db" : "admin",

"roles" : [

{

"role" : "root",

"db" : "admin"

}

]

}

{

"_id" : "admin.migration",

"user" : "migration",

"db" : "admin",

"roles" : [

{

"role" : "backup",

"db" : "admin"

},

{

"role" : "read",

"db" : "local"

},

{

"role" : "read",

"db" : "some_database"

}

]

}

{

"_id" : "admin.sys",

"user" : "sys",

"db" : "admin",

"roles" : [

{

"role" : "__system",

"db" : "admin"

}

]

}

以上输出为示例. 可以看到官方存储权限的方案也是用数组.

mongodb 存储过程 遍历表数据_mongodb推荐存列表字段还是多条记录?相关推荐

  1. mongodb 存储过程 遍历表数据_mongodb查看数据库和表的信息

    mongodb查看数据库和表的方法比较简单,在为这里推荐使用stats的方法,直观并且详细. 1.查看数据库 db.stats(); 1 输出: { "db" : "si ...

  2. mongodb 存储过程 遍历表数据_使用MongoDB存储数据

    在 Ubuntu14.04 上安装 Install MongoDB Community Edition 1. Import the public key used by the package man ...

  3. mongodb 存储过程 遍历表数据_一个mongodb存储过程

    functionProhibitNumbers(datetype,startdate,enddate,org,pageindex,pagesize) {//违规检查-数量控制 ProhibitNumb ...

  4. mongodb 存储过程 遍历表数据_三、redis数据存储之跳跃表(SKIP LIST)

    导读 前面文章[一.深入理解redis之需要掌握的知识点 ]中,我们对redis需要学习的内容框架进行了一个梳理.[二.redis中String和List两种数据类型和应用场景 ].[二.redis中 ...

  5. mysql一个表几亿数据_如何在mysql 造1亿条记录的大容量数据表?

    背景及目标:现有数据1000w单表,为压力测试准备1亿条数据. 步骤: 1.将1000w条记录,除id外都导入到多个文件中: //DELIMITER DROP PROCEDURE if EXISTS ...

  6. 检索数据_12_从表中随机返回N条记录

    从表中随机返回N条记录 需求描述 需求:从雇员表emp里随机查询5条雇员的名称和工资信息. 解决方法:使用数据库里内置的限制行数函数结合随机函数来解决. 注: 数据库数据集SQL脚本详见如下链接地址 ...

  7. php sql跳过前四条数据,mysql实现每组取前N条记录的sql,以及后续的组数据量限制...

    select a.msg_id, a.com_id, a.data, a.ctime from sns_user_03.user_request_86 a where 5 (select count( ...

  8. 如何获取mongodb中的最后N条记录?

    我找不到任何记录在案的文件. 默认情况下,find()操作将从头开始获取记录. 如何获取mongodb中的最后N条记录? 编辑:我也希望返回的结果从最近到最近排序,而不是相反. #1楼 您可以使用so ...

  9. wpf 如何实现窗口浮动_如何实现工作表数据与UserForm窗口的交互,显示第一条记录...

    大家好,我们今天继续讲解VBA数据库解决方案,今日讲解的是第77讲:工作表数据与UserForm窗口的交互:第一条记录的显示.从这讲开始,我将利用7讲的时间,给大家详细讲解一个工作表数据库的准实例,虽 ...

最新文章

  1. 九、数据库群集部署、配置 (二)
  2. 机器学习框架_一个框架解决几乎所有机器学习问题
  3. 信道编码之差错控制方式
  4. +7白盒测试与黑盒测试的定义与区别
  5. 利用Phtoshop去掉图片中的线性渐变背景
  6. springboot打包发布
  7. mysql的length函数和char_length中文字符长度计算函数
  8. dbms_xplan之display_cursor函数的使用
  9. 越是被吐槽,女博士这个群体就越强!!
  10. 面试题22. 链表中倒数第k个节点
  11. python list增删改查_Python 基础list 增删改查 解析
  12. maven服务器项目,Maven项目搭建
  13. VMware虚拟机更换根用户( su: Authentication failure问题)
  14. a 和an 的用法区别
  15. SQL 注入漏洞介绍及解决办法
  16. httpunit测试遭遇org.mozilla.javascript.NativeGlobal.constructError
  17. C语言:记录在主线程中停止子线程
  18. Linux实战:awl-2.0工具模拟洪水攻击,建立大量的TCP连接
  19. vue项目手机端适配
  20. ubuntu 14.04版本更改文件夹背景色为草绿色

热门文章

  1. Kafka的配置文件详细描述
  2. 内存缓存LruCache实现原理
  3. win7-64bit 下oracle11g plsql 的正确安装
  4. libcstl中的list没法插入自定义数据
  5. 在一个禁止离婚的国家结婚
  6. Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限
  7. 联想m7400pro清零方法_联想打印机怎么清零 联想打印机清零方法【教程】
  8. 本地 服务器 文件传输,本地服务器文件传输
  9. anaconda如何更改环境配置_手把手教新手安装Anaconda配置开发环境
  10. 系统延时任务及定时任务