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"

}

]

}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值