0

角色数据模型:-

Roles : {
    id: string,
    scopes: [
        {
         isOwnes: bool, 
         account: string(id), 
         privileges: array_of_string
        }
    ]
}

在下面的函数中,我存储了所有用户,这会占用大量空间和时间。

User.subUsers = async function(accessToken, cb) {
    const accountId = accessToken.accountId;
    let userData = [];
    const user = await User.find();
    for (let it = 0; it < user.length; it++) {
      const roleData = await User.app.models.roles.findById(user[it].roleId);
      for (let iterator = 0; iterator < roleData.scopes.length; iterator++) {
        const scopeAccountId = roleData.scopes[iterator].account;
        if (scopeAccountId == accountId) {
          userData.push({
            email: user[it].email,
            id: user[it].id,
          });
          break;
        }
      }
    }
    return cb(null, userData);
  };

我想以某种方式更改此程序,以便我可以获取存在给定帐户 ID 的所有角色,但我找不到如何应用该条件的方法。

谁能帮我?

4

0 回答 0