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内容,并以单一格式存储,如果可以避开的话。