【发布时间】:2019-12-03 12:37:02
【问题描述】:
我有三个集合(“role”、“permission”、“role_permission”)。在这种情况下,我想列出所有权限(集合-> 权限),但我还想添加角色信息并添加一个来自 role_permission.state 的状态字段。如果角色的 role_permission 不存在,则状态值必须为 0。我该如何解决这种情况?
收藏:
/* "role" collection */
{
"_id" : 1,
"name" : "Admin"
}
/* "permission" collection */
{
"_id" : 1,
"name" : "Add User"
}
{
"_id" : 2,
"name" : "Update User"
}
{
"_id" : 3,
"name" : "Delete User"
}
{
"_id" : 4,
"name" : "List User"
}
/* "role_permission" collection */
{
"_id" : 1,
"role_id" : 1,
"permission_id" : 1,
"state": 1
}
{
"_id" : 2,
"role_id" : 1,
"permission_id" : 2,
"state": 1
}
{
"_id" : 4,
"role_id" : 1,
"permission_id" : 4,
"state": 1
}
预期结果:
/* expecting result */
{
"role_id": 1,
"permission_id": 1,
"permission_name": "Add User",
"permission_state": 1 // if role_permission is exist for the role: use role_permission.state else: 0
}
{
"role_id": 1,
"permission_id": 2,
"permission_name": "Update User",
"permission_state": 1 // if role_permission is exist for the role: use role_permission.state else: 0
}
{
"role_id": 1,
"permission_id": 3,
"permission_name": "Delete User",
"permission_state": 0 // if role_permission is exist for the role: use role_permission.state else: 0
}
{
"role_id": 1,
"permission_id": 4,
"permission_name": "List User",
"permission_state": 1 // if role_permission is exist for the role: use role_permission.state else: 0
}
【问题讨论】:
-
您能否在问题中添加您期望的示例输出
-
我在问题中添加了预期结果。您可以查看 /* 预期结果 */ 注释行。
标签: mongodb collections