Mongoose聚合匹配,如果在数组中

时间:2016-06-02 11:53:03

标签: node.js mongodb mongoose

我有一个基本文档,我正在执行聚合以搜索组合的名字和姓氏的组合:

我的文件:

{
   _id: dmw9294r94
   firstName: "John",
   lastName: "Smith",
   friends: [28enw93hr, 29nwgkn38]
}

我的汇总管道:

User.aggregate([
    {
        $project: {
            "name" : { $concat : [ "$firstName", " ", "$lastName" ] },
            "firstName": "$firstName",
            "lastName": "$lastName",
            "username": "$username",
            "friends": "$friends"}
    },{
        $match: {
            "name": {$regex: new RegExp(req.query.query, "i")
        }
    }}]).exec(function(err, results){
        res.json(results);
    }
);

如何添加此内容以检查该用户friends数组中是否存在特定用户ID?

我试过以下,虽然没有运气:

$match: {
    "name": {$regex: new RegExp(req.query.query, "i"),
    "friends" {$eq: myVarHere}
}

1 个答案:

答案 0 :(得分:0)

正如@ profesor79所说,你只需要匹配你感兴趣的用户ID:

{$ match:{“friends”:“user_id_to_find”)}

除非我不理解这个问题,否则在我看来这里不需要$ regex。