Mongo DB – 小写查找
我下面的find
查询不能在小写的情况下工作。 如果集合中的值是大写的,而且我传递的是小写字母,则不会产生任何结果。
如何覆盖区分大小写的行为?
User.find({ $or: [ { 'basicinformation.firstname': { '$regex': firstname + '.*' } }, { 'basicinformation.lastname': { '$regex': lastname + '.*' } } ] }
将$options
添加到您的$regex
运算符中:
User.find({ $or: [ { 'basicinformation.firstname': { '$regex': firstname + '.*', '$options': 'i' } }, { 'basicinformation.lastname': { '$regex': lastname + '.*', '$options': 'i' } } ] }
所以这里的"i"
使search情况不敏感。 请注意,调用不区分大小写的search将强制进行索引扫描,即使您将^
正则expression式定位到string的开头。
由于这可能会对您的performance产生很大的影响,因此可以考虑使用其他选项,例如文本search索引和查询,或者修改案例中的其他字段或input内容,并以单一格式存储,如果可以避开的话。