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

在 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"

}

]

}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习小记----分层图最短路

前置知识 简单的图论知识 简单的dp知识 使用标志 你机智的发现了这是一道图论题,并且出现了类似于N次免费/花费变化的字样,大部分就是分层图最短路了. 它不是不是很难,就是那种,那种看起来很凶神恶煞的,你知道么&#…

gojs 节点右键点击事件_SWMM快速建模方法(3)—建立管线上下游节点编号

在SWMM中,管线需要输入上下游节点检查井编号,那么在GIS中可否实现自动获取上下游节点编号呢?思路是这样的,首先获得管线两端节点,然后对端点进行融合,删除重复的节点,最后根据坐标关系分别建立管…

android 设置setmultichoiceitems设置初始化勾选_Linux内核启动:虚拟盘空间设置和内存管理结构初始化...

1. 设置虚拟盘并初始化接下来main函数将对外设中的虚拟盘区进行设置。 检查makefile文件中"虚拟盘使用标志"是否设置, 以此确定系统是否使用了虚拟盘(假设有虚拟盘,大小设置为2 MB)。 操作系统从缓冲区的末端起开辟2MB内存空间设置为虚拟盘&am…

centos7 Failed to start iptables.service: Unit not found

在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理 添加 firewall-cmd --zonepublic --add-port80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)firewall-cmd --zonepublic --add-port1000-2000/tcp --permanent 重新载…

关闭mysql服务的方法有哪些_MySQL--启动和关闭MySQL服务

介绍了启动服务器的两种方式,以及可能遇到的问题第一种:系统服务1)可以通过右击方式一步步找到服务右击计算机->选择管理->找到服务,然后双击打开,找到mysql,我安装的是mysql8.0所以服务的名称显示是mysql80&…

[浪风分享]很简单的查看电脑所支持的最大内存的方法--磨刀不误砍柴工

硬件操作系统====决定支持的最大内存  在开始---运行处输入cmd(或者按住winkdyR键输入CMD),打开命令窗口,输…

mysql mysar_使用mysar分析squid日志(日志存mysql)

需要的包:php5-mysql #安装后php才能联系数据库php5-commonphp5-cli #执行php脚本需要mysql-server开始安装:下载最新的mysar包tar zxvf mysar-2.0.6.tar.gz -C /usr/local-#将mysar解压到/usr/local下ln -s /usr/local/mysar/etc/mysar.apache /etc/apache2/…

mysql语句怎么记_Mysql常用语句(记一下,免得忘)

1、去掉某列记录中的特殊字符例如:/r,update test_table set keyreplace(key, char(13), );其他特殊字符类似。2、查询重复的记录Select weixinid From dianxin_highda_detail Group By weixinid Having Count(*)>1;3、从txt向数据库导入记录load dat…

ZSH终端 乱码问题

参考链接 CSDN 转载于:https://www.cnblogs.com/eat-too-much/p/11216073.html

mysql将数据导入mgr_MySQL 8.0.20 MGR数据迁移过程以及注意事项

1.背景近期由于业务调整,需要将Windows Server 2008 MySQL5.5数据库迁移到Windows Server 2012 MySQL8.0集群MGR中,由于实际部署时,有一台机器硬盘损坏,只能构建双节点MGR,在迁移以及应用迁移过程中遇到许多参数与迁移…

安装 搜狗输入法 ubuntu 18

命令 sudo dpkg -i sogoupinyin_2.2.0.0108_amd64.deb sudo apt --fix-broken install 转载于:https://www.cnblogs.com/eat-too-much/p/11216083.html

devstack mysql_DevStack部署OpenStack开发环境 - 问题总结

建议在使用DevStack搭建OpenStack开发环境前,先安装好开发工具包组.特别是gcc,主要一定是在yum update -y 之前,否则更新完系统后,在安装开发工具包会出现很多依赖包因为版本更新而无法安装.要部署OpenStack需要注意若电脑配置不高,我自己的经验是先最小化或基本Web安装,然后,再…

docker+mysql创建用户名密码_docker构建私有仓库并设置仓库用户和密码

#搭建私有镜像仓库[rootdocker_test opt]# docker pull registryUsing default tag: latestlatest: Pulling from library/registryGet https://registry-1.docker.io/v2/library/registry/manifests/sha256:b1165286043f2745f45ea637873d61939bff6d9a59f76539d6228abf79f87774…

linux 安装RabbitMQ 注意版本

Linux下安装RabbitMQ 一下载依赖包 1.下载Rabbitmq 所依赖的环境gcc、erlang包和rabbitmq包,这里演示是网上下载gcc 依赖 1yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel tk tc xzerla…

mysql更新写入数据_七、MySQL插入、更新与删除数据

存储在系统中的数据是数据库管理系统(DBMS)的核心,数据库被设计用来管理数据的存储、访问和维护数据的完整性。MySQL中提供丰富的数据管理语句,包括插入数据的INSERT、更新数据的UPDATE以及删除数据的DELETE语句。7.1、插入数据为表的所有字段插入数据使…

mysql语句随机数_程序生成随机数与SQL语句生成随机数

随机数可以通过程序生成,也可以通过SQL语句生成。通过程序生成随机数时一般采用硬件的编号时间作为种子,这种方法在瞬间插入数据库N条数据的时候会影响随机数的效果,生成很多相邻的插入值相同。所以频繁插入时可以使用SQL语句的内置函数生成随…

BPM的四大主要类型

随着网络的发展,移动BPM、社交BPM、云端BPM将顺应市场需求,成为BPM发展的新趋势,最终成为企业即时管控有效工具。BPM将不断促进制造业信息化的转型与发展。所以很少人会否认业务流程管理(BPM)的价值,更不用说给BPM一个全面定义。根…

jquery.js把我的时间修改了为什么?_电气老手在PLC程序调试修改时的几个必备小窍门,看你知道几个?...

我们工程师在设计程序,调试程序,修改程序的时候,为了方便以后对程序的理解,最好是对程序进行注释,能够对程序进行注释也是比较好的一个习惯。为什么这么说呢?因为我们人的脑容量是有限的,或多或…

rpm命令包安装mysql_CentOS7使用rpm包安装mysql 5.7.18

说明本文写于2017-05-20,使用MySQL-5.7.18。操作系统为64位CentOS Linux release 7.2.1511 (Core),以桌面形式安装。卸载MariaDBCentOS7默认安装MariaDB而不是MySQL,而且yum服务器上也移除了MySQL相关的软件包。因为MariaDB和MySQL可能会冲突…

mysql phpmyadmin远程_phpmyadmin登录远程mysql数据库

之前只用phpmyadmin登录本地的mysql,管理另一个远程数据库的时候发现,单纯用命令行处理字符串、换行符实在是不好使,所以配置了远程登录mysql,很简单的问题结果没有搜到合适的方法,所以记录下我的配置方式。phpmyadmin…