MongoDB:通过firstname和lastname的组合过滤Fullname

时间:2018-02-13 06:25:08

标签: mongodb nosql

示例文档如下所示

{
    "_id" : ObjectId("5a61cbc677366f5e0cdc95db"),
    "Indvl" : {
        "Info" : {
            "lastNm" : "ALEX",
            "firstNm" : "BOB",
            "midNm" : "Y",
        }       
    }
}

现在我们使用以下查询来使用name进行搜索。 我们必须对lastNmfirstNmmidNm

的组合做同样的事情
db.getCollection("MyCOL").find({ "Indvl.Info.firstNm":{$regex: "al" , $options:"i"})

我们怎么做?

2 个答案:

答案 0 :(得分:0)

db.MyCOL.aggregate(

    // Pipeline
    [
        // Stage 1
        {
            $project: {
                name: {
                    $concat: ['$Indvl.Info.lastNm', ' ', '$Indvl.Info.firstNm', ' ', '$Indvl.Info.midNm']
                }
            }
        },

        // Stage 2
        {
            $match: {
                name: /al/i
            }
        },

    ]



);

答案 1 :(得分:0)

这为我回答:

db.MyCOL
    .aggregate(
        [ { $project: {fullName: { $concat: ['$Indvl.Info.firstNm', ' ', '$Indvl.Info.lastNm']}} },
          { $match: {fullName: /alex bob/} }
        ]
);