无法使用 mongoosejs 填充
Can't populate using mongoosejs
为什么我在尝试填充我的方案时无法获得结果(我使用 mongoosejs)。在我的例子中,我的类别、子类别、子子类别方案不使用 _id。我使用自定义 ID。
这是我的产品方案:
.....
categoryId: {
type: String,
ref: 'Catgory',
required: true
},
subcategoryId: {
type: String,
ref: 'Subcategory',
required: true
},
subsubcategoryId: {
type: String,
ref: 'Subsubcategory',
required: true
});
const Product = mongoose.model('Product', product);
module.exports = Product;
这是我的产品控制器:
'getOne': function(req, res, next) {
if (typeof req.params.id !== 'string') return res.send({
'error-code': 3
});
Product.findOne({
_id: req.params.id
})
.populate({
path: 'category',
select: 'name'
})
.populate({
path: 'subcategory',
select: 'name'
})
.populate({
path: 'subsubcategory',
select: 'name'
})
.exec(function(error, response) {
if (error) return handleError(error);
return res.send(response);
})
}
非常感谢您的帮助。
遗憾的是,截至目前,您只能 populate
字段使用外部 _id
。按不同字段填充已经 heavily requested feature on the mongoose GitHub 很长一段时间了。
为什么我在尝试填充我的方案时无法获得结果(我使用 mongoosejs)。在我的例子中,我的类别、子类别、子子类别方案不使用 _id。我使用自定义 ID。
这是我的产品方案:
.....
categoryId: {
type: String,
ref: 'Catgory',
required: true
},
subcategoryId: {
type: String,
ref: 'Subcategory',
required: true
},
subsubcategoryId: {
type: String,
ref: 'Subsubcategory',
required: true
});
const Product = mongoose.model('Product', product);
module.exports = Product;
这是我的产品控制器:
'getOne': function(req, res, next) {
if (typeof req.params.id !== 'string') return res.send({
'error-code': 3
});
Product.findOne({
_id: req.params.id
})
.populate({
path: 'category',
select: 'name'
})
.populate({
path: 'subcategory',
select: 'name'
})
.populate({
path: 'subsubcategory',
select: 'name'
})
.exec(function(error, response) {
if (error) return handleError(error);
return res.send(response);
})
}
非常感谢您的帮助。
遗憾的是,截至目前,您只能 populate
字段使用外部 _id
。按不同字段填充已经 heavily requested feature on the mongoose GitHub 很长一段时间了。