Mongoose Populate 无法在具有 "path" 选项的子文档数组中工作
Mongoose Populate not working in array of sub-document with "path" option
这是我的猫鼬模式:
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'
为空数组的产品
- 如果我删除填充 'candidates' 的行,它 returns array of _id for 'candidates'
- 如何填充 'candidates' 数组?
你能试试这个吗
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);
});
这是我的猫鼬模式:
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' 为空数组的产品
- 如果我删除填充 'candidates' 的行,它 returns array of _id for 'candidates'
- 如何填充 'candidates' 数组?
你能试试这个吗
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);
});