Mongodb - 小写找到

时间:2014-05-23 08:39:44

标签: node.js mongodb mongodb-query

我的以下find查询不适用于小写方案。如果集合中的值是大写&我传递的是小写,没有结果。

如何覆盖区分大小写的行为?

User.find({
        $or:
        [
            { 'basicinformation.firstname': { '$regex': firstname + '.*' } },
            { 'basicinformation.lastname': { '$regex': lastname + '.*' } }
        ]
    }

1 个答案:

答案 0 :(得分:2)

$options添加到$regex运营商:

User.find({
    $or:
    [
        { 
            'basicinformation.firstname': { 
                '$regex': firstname + '.*', '$options': 'i' 
             }
        },
        { 
            'basicinformation.lastname': { 
                '$regex': lastname + '.*', '$options': 'i'  
            }
        }
    ]
}

因此"i"使搜索大小写不敏感。请注意,即使您将正则表达式^锚定到字符串的开头,调用不区分大小写的搜索也会强制进行索引扫描。

由于这可能会影响您的性能,因此请考虑其他选项,例如文本搜索索引和查询,或者使用其他字段修改案例,或者在输入中修改案例并以单一案例格式存储,如果您可以使用它。< / p>