javascript - 如何在 mongodb/nosql 中创建用户角色和权限

标签 javascript mongodb permissions database nosql

我一直在寻找有关如何使用用户 Angular 色制作典型网站 MVC 权限系统的教程。

我已经使用 SQL 和关系完成了这些事情,但在 nosql 数据库中,它的做法不同(我假设)。

我的想法是这样的

//Role objects
{Roles : [
{
    '_id' : 'uniqueId',
    'role_name' : 'admin',
    'permissions_granted' : [array of permission strings]
},
{
    '_id' : 'uniqueId',
    'role_name' : 'user',
    'permissions_granted' : [array of permission strings]
},
{
    '_id' : 'uniqueId',
    'role_name' : 'guest',
    'permissions_granted' : [array of permission strings]
}
]}

//User objects
{Users: [
{
    '_id' : 'uniqueId',
    'username' : 'mike',
    'password' : 'mypass',
    'permissions' : [an instance of role group, or its id ? ]
},
{
    '_id' : 'uniqueId',
    'username' : 'jonny',
    'password' : '123',
    'permissions' : [???]
}
]}

我怎样才能进行单个查询来获取用户数据 + 其权限? 使用 2 个查询是否有缺点,一个是获取用户的 Angular 色 ID,然后从 Angular 色文档中获取权限。 ? 在 mongodb 等 nosql 数据库中如何处理用户权限

最佳答案

您应该使用 ID 而不是对象本身。这样您就可以轻松更新所有内容。如果您有一个场景,当您经常读取权限并且很少写入(我假设)时,您可以另外存储 Angular 色 ID 以及用户的实际权限(基于其 Angular 色)

但是,每次更新 Angular 色时,您都需要更新这些权限。但是在查询用户时,您会立即获得 Angular 色,这比使用 2 个单独的查询要快得多。

关于javascript - 如何在 mongodb/nosql 中创建用户角色和权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18616625/

相关文章:

javascript - 正则表达式限制小数点前后 'n'位数

javascript - 合并 javascript 或将它们放在单独的页面上。

javascript - 导出默认路由; NodeJS 中的语法错误

android - 如何以编程方式在应用程序设置中打开应用程序权限窗口

linux - 插入 USB 设备时获取用户输入

javascript - 使用基本的 javascript xml 访问 RSS feed 中的 'media:thumbnail' 标签

javascript - 有没有办法在 ie9+ 中实现 promise

mongodb - 如何在 MongoDB 中加入两个聚合结果?

node.js - 选择与查找以及在 Mongoose 中查找的位置

推送通知的 Android checkSelfPermission