我與貓鼬有兩種模型關系。我的第一個模型是這樣的:
const gradeSchema = new Schema(
{
grade_name: {
type: String,
required: true,
uppercase: true
},
major: {
type: Schema.Types.ObjectId,
ref: "Major"
},
active: {
type: Boolean,
default: true
}
},
{
timestamps: true
}
)
我的第二個模型是這樣的:
const majorSchema = new Schema(
{
major_name: {
type: String,
required: true,
},
major_type: {
type: String,
required: true,
minLength: 2,
unique: true,
uppercase: true
},
active: {
type: Boolean,
default: true
}
},
{
timestamps: true
}
)
我想按專業獲得所有成績,但我想按活躍篩選專業。
我嘗試使用 populate.match 但我得到了專業回應為空:
const grade = await Grade.find()
.populate({
path: "major",
match: {
active: true
},
select: "-_id major_name major_type"
})
.where("active")
.equals(true)
.exec()
uj5u.com熱心網友回復:
您可以在 mongo 中使用聚合概念。
const data = await Grade.aggregate([
{
$match : {}
},
{
$lookup : {
"from" : "majors",
"pipeline" : [
{
$match : {
"active" : true
}
}
],
"as" : "majorInfo"
}
}
]).exec()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/366766.html
