Невозможно заполнить с помощью mongoosejs

Почему я не могу получить результат при попытке заполнить мою схему (я использую mongoosejs). В моем случае моя категория, подкатегория, схема подподкатегории не использует _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);
        })
}

Большое спасибо за Вашу помощь.


person Muhammad Harits Syaifulloh    schedule 05.10.2016    source источник


Ответы (1)


К сожалению, на данный момент вы можете использовать только populate поля, используя иностранные _id. Заполнение различными полями уже давно является очень востребованной функцией на GitHub.

person Oberon    schedule 05.10.2016
comment
О, большое спасибо. Попробую еще раз другим методом. - person Muhammad Harits Syaifulloh; 05.10.2016