如何使用Mongoose创建具有可选$ in的条件查询?

时间:2015-06-22 23:40:39

标签: node.js mongodb mongoose

我试图返回符合a,b或c条件的文档列表。

现在,我只能通过匹配所有条件来实现它,而不只是一个......

我试过这个:

return User
    .find()
    .where({ $or: [
        { $in: skillTags },
        { $in: roleTags }
    ]})

但是我收到了错误。

这个有效,但不是我想要的,因为它只返回与技巧标签和角色标签相匹配的结果。我希望文档至少匹配一个或另一个或两者:

return User
    .find()
    .where({
        skillTags: { $in: skillTags }
     }, {
        roleTags: { $in: roleTags }
    })

1 个答案:

答案 0 :(得分:1)

这适用于查找与skillTag或roleTag匹配的文档:

return User
    .find({
        $or: [{
            skillTags: {
                $in: skillTags
            }
        }, {
            roleTags: {
                $in: roleTags
            }
        }]
    })