如何在填充对象中获取由特定许可证ID创建的记录?

时间:2015-11-26 13:48:46

标签: javascript node.js mongodb mongoose

我有两个名为UserQuestion的模型。

User模型具有license属性,Question模型具有created_by属性。

Question' created_by属性是对User模型的引用。

如何通过created_by ID获取license特定用户的问题?

我试试这个:

QuestionResource
.find({'created_by.license':req.query.license})
.exec(function (err, result) {
    if (err) res.json(err)
    else res.json(result)
})

但似乎没有效果。

1 个答案:

答案 0 :(得分:1)

您可以使用 .populate() 方法的match选项,如下所示:

QuestionResource
    .find()
    .populate({
        path: 'created_by',
        match: { 'license': req.query.license }
    })
    .exec(function (err, result) {
        if (err) res.json(err)
        var docs = result.filter(function(doc){
            return doc.created_by.length;
        });
        res.json(docs)
    })