第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Mongo 聚合嵌套數(shù)組,查找

Mongo 聚合嵌套數(shù)組,查找

Go
心有法竹 2023-06-19 14:02:21
我正在使用 MongoDB 和 Go 創(chuàng)建一個 Web 應(yīng)用程序,其中包括基于角色的訪問控制。我將有關(guān)此的信息存儲在 2 個集合中,permissions并且roles.這就是這兩個集合的樣子。權(quán)限{    "operation": "create",    "resource": "project"}{    "operation": "read",    "resource": "project"}{    "operation": "update",    "resource": "project"}{    "operation": "delete",    "resource": "project"}{    "operation": "create",    "resource": "user"}resourceoperation是執(zhí)行an 的對象。所以如果有一些操作不能在某些資源上執(zhí)行,那么,我不需要存儲它。例如,只能創(chuàng)建用戶,因此只create user需要存儲。目前在應(yīng)用程序范圍內(nèi)只有 4 個操作(創(chuàng)建、讀取、更新、刪除),但可能會增加,比如upload可能會出現(xiàn)。角色{    "role": "admin",    "display_name": "Administrator",    "permissions": [      {        "operation": "create",        "resource": "project"      },      {        "operation": "read",        "resource": "project"      },      {        "operation": "update",        "resource": "project"      },      {        "operation": "delete",        "resource": "project"      }    ]}角色包含角色,要在 UI 上顯示的角色名稱以及該角色擁有的權(quán)限集。我需要使用特定格式的 REST API 將此信息發(fā)送到 UI,這將描述特定角色是否可以使用標志對資源執(zhí)行操作,以及對資源的checked特定操作是否可通過使用進行編輯國旗isEditable。例如,權(quán)限集合不包含對資源用戶的刪除操作,因此它不應(yīng)是可編輯的,因此標志設(shè)置為 false。同樣可以創(chuàng)建用戶,因此將其設(shè)置為 true。 {    display_name: "System Administrator",    role: "admin",    permissions: [      {        resource: "user",        privilages: {          create: { checked: false, isEditable: true },          delete: { checked: false, isEditable: false },          update: { checked: false, isEditable: false },          read: { checked: false, isEditable: false }        }      },      {        resource: "project",        privilages: {          create: { checked: true, isEditable: true },          delete: { checked: true, isEditable: true },          update: { checked: true, isEditable: true },          read: { checked: true, isEditable: true }        }      }   ]}是否可以使用 mongo 聚合來執(zhí)行此操作?或者我是否需要在我的架構(gòu)中進行修改,如果是,那么我應(yīng)該進行哪些修改。
查看完整描述

1 回答

?
SMILET

TA貢獻1796條經(jīng)驗 獲得超4個贊

我能夠通過 3 個步驟解決問題:

  1. 包括每個角色的所有權(quán)限并添加一個名為checked. 這增加了數(shù)據(jù)冗余,但這不是一個大問題。

  2. 在集合中做一個group by現(xiàn)場。resourceroles

  3. 在服務(wù)器端privileges為每個resource設(shè)置為 false 的人填充缺失值。isEditable

我不得不在服務(wù)器端遍歷數(shù)據(jù),但這是我能想到的最有效的方法。


查看完整回答
反對 回復(fù) 2023-06-19
  • 1 回答
  • 0 關(guān)注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號