簡體   English   中英

Mongoose 用戶、角色和權限

[英]Mongoose User, Roles & Permissions

我對 NoSQL/Mongo/Mongoose 很陌生,我正在嘗試確定設置模式的最佳方式。 這是我所擁有的:

const UserSchema = new mongoose.Schema(
  {
    email: {
      type: String,
      required: true
    },
    password: {
      type: String,
      required: true,
      minlength: 6,
      select: false,
    },
    roles: [
      {
        type: mongoose.Schema.ObjectId,
        ref: 'Role',
      },
    ],
  }
);
const RoleSchema = new mongoose.Schema(
  {
    name: {
      type: String,
      required: true,
      unique: true,
    },
    description: {
      type: String,
    },
    permissions: [
      {
        type: mongoose.Schema.ObjectId,
        ref: 'Permission',
      },
    ],
  }
);
const PermissionSchema = new mongoose.Schema(
  {
    name: {
      type: String,
      required: true,
      unique: true,
    },
    description: {
      type: String,
    },
  }
);

很簡單,用戶有角色,角色有權限。

如果我想查找用戶及其權限,是否應該通過populate以某種方式完成此操作,即使權限實際上並不直接屬於 User 模式,或者這應該/可以是虛擬的?

本質上,我想要做的是訪問用戶的權限,如下所示:

const user = User.findById(id);
console.log(user.permissions);

如果您想在一個查詢中檢索用戶的權限,您可以使用嵌套填充

這是代碼:

User.findById(id)
    .populate({
        path: 'roles',
        populate: [{
          path: 'permissions',
          model: 'Permission'
    }]
}).exec();

如果您想了解更多關於 mongoose 人口的信息,請參閱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM