无法使用mongoosejs填充

时间:2016-10-05 02:29:18

标签: node.js mongoose restify mongoose-schema mongoose-populate

为什么在尝试填充我的方案时我无法获得结果(我使用mongoosejs)。在我的情况下,我的类别,子类别,subsubcategory方案不使用_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);
        })
}

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

不幸的是,截至目前,您只能populate个使用外国_id字段的字段。不同领域的填充已经有heavily requested feature on the mongoose GitHub了很长一段时间。