无法使用 mongoosejs 填充

Posted

技术标签:

【中文标题】无法使用 mongoosejs 填充【英文标题】:Can't populate using mongoosejs 【发布时间】:2017-02-13 08:12:37 【问题描述】:

为什么我在尝试填充我的方案时无法获得结果(我使用 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);
        )

非常感谢您的帮助。

【问题讨论】:

【参考方案1】:

不幸的是,截至目前,您只能在 populate 字段中使用外国 _ids。很长一段时间以来,按不同字段填充heavily requested feature on the mongoose GitHub。

【讨论】:

哦,非常感谢。我会用其他方法再试一次。

以上是关于无法使用 mongoosejs 填充的主要内容,如果未能解决你的问题,请参考以下文章

MongooseJS 使用多个目标字段填充

MongooseJS 在填充后返回空数组

如何在 mongoosejs 中深度填充多个路径?

MongooseJS 无法禁用字段独有

是否可以在 mongoosejs 模式中填充自引用?

填充嵌套引用的更好方法 mongoosejs