我用的是MongoDBC# driver for MongoDB.

我最近发现MongoDB中的所有查询都区分大小写.如何进行不区分大小写的搜索?

我找到了一种方法:

Query.Matches(
    "FirstName", 
    BsonRegularExpression.Create(new Regex(searchKey,RegexOptions.IgnoreCase)));

推荐答案

最简单、最安全的方法是使用Linq:

var names = namesCollection.AsQueryable().Where(name =>
    name.FirstName.ToLower().Contains("hamster"));

tutorial ToLowerToLowerInvariantToUpperToUpperInvariant中所述,所有匹配都以不区分大小写的方式执行.之后,您可以使用所有受支持的字符串方法,如ContainsStartsWith.

此示例将生成:

{
    "FirstName" : /hamster/is
}

i选项使其不区分大小写.

Mongodb相关问答推荐

MongoDB—基于数组中同一文档中的另一个字段更新字段

我们可以在Mongoose中这样使用Unique:[True,";This to Unique&qot;]吗

没有文档的MongoDB集合中的不一致,但当我执行count()时,它告诉我有15个文档

在MongoDB中获取所有帖子时如何获取相关用户信息

为什么使用 Golang Mongo 驱动程序进行简单查询需要超过 2 秒?

Mongoose updateMany 以及 Where 和 orWhere?

MongoDb 聚合未正确分组

更新 Mongodb 中的多嵌套数组

NodeJS + MongoDB:使用 findOne () 从集合中获取数据

Meteor mongo 驱动程序可以处理 $each 和 $position 运算符吗?

Select 匹配mongodb中两个字段的concat值的记录

.NET 中的 Mongodb 单元测试

MongoDB Java API:put() 与 append()

在 Postgres JSON 数组中查询

REACT 获取发布请求

MongoException: Index with name: code already exists with different options

在 MongoDB 中为现有用户更改密码

MongoDB 用 $type 匹配一个数组?

MongoDb - 利用多 CPU 服务器进行写入繁重的应用程序

查找聚合性能差