node.js - 猫鼬填充不能在带有“路径”选项的子文档数组中工作
问题描述
这是我的猫鼬模式:
const productSchema = mongoose.Schema({
writer: {
type: Schema.Types.ObjectId,
ref: 'User'
},
schedule: [{
dateTime: {
type: String,
unique: 1
},
candidates: [{
type: Schema.Types.ObjectId,
ref: 'User'
}],
attorn: {
type: Schema.Types.ObjectId,
ref: 'User'
}
}]
...
这是我与候选人一起获得物品的地方:
Product.find({ '_id': { $in: productIds } })
.populate('writer')
.populate({
path: 'schedule',
populate: {
path: 'candidates',
model: 'User'
}
})
.exec((err, product) => {
if (err) return res.status(400).send(err)
return res.status(200).send(product)
})
- 此代码的结果是一个产品,其中仅填充了“writer”和“candidates”的空数组
- 如果我删除填充“候选人”的行,它将返回“候选人”的_id数组
- 如何填充“候选人”数组?
解决方案
你能试试这个吗
Product.find({ _id: { $in: productIds } })
.populate("writer")
.populate({
path: "schedule.candidates",
})
.populate({
path: "schedule.attorn",
})
.exec((err, product) => {
if (err) return res.status(400).send(err);
return res.status(200).send(product);
});