[英]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.