【发布时间】:2021-07-13 06:46:09
【问题描述】:
我的 Mongo DB 中有两个集合:用户和角色。一个用户可以有很多角色。使用猫鼬我想找出特定用户(基于他们的 id)是否具有管理员角色。如何执行该查询?在 SQL 中查找的一种方法是编写以下查询:
SELECT *
FROM Users
INNER JOIN Roles ON Users.id = Roles.userID
WHERE (Users.id = <some user id> AND Roles.name='admin')
但我看不到如何使用 Mongoose 完成等效查询。以下是我的 Mongoose 架构:
let RoleSchema = new Schema({
name: String,
owner: {
type: Schema.Types.ObjectId,
ref: "User"
}
})
export let Role = mongoose.model("Role", RoleSchema)
let userSchema = new Schema({
username: {
type: String,
unique: true,
required: true,
trim: true
},
roles: [
{
type: Schema.Types.ObjectId,
ref: "Role"
}
]
})
export let User = mongoose.model("User", userSchema)
【问题讨论】:
标签: mongodb mongoose mongodb-query one-to-many mongoose-populate