Mongodb .Net驱动程序查找不区分大小写

时间:2018-05-09 19:12:14

标签: mongodb mongodb-.net-driver

鉴于以下JSON,我正在尝试获取与“myemail@domain.com”匹配的所有文档。我需要一个不区分大小写的过滤器。我想如果我将i添加到它将执行搜索的值但没有运气。

我是MongoDB的新手,请原谅我这是一个简单的问题。

{ 
"_id" : ObjectId("5aecc56d2a7e7a408c9767e3"),     
"Children" : [
    {
        "Email" : "MyEmail@Domain.com", 
        "Children" : [
            {
                "Name" : "Some name", 
                "Value" : "some value",                     
            }
        ]
    }
]
}

var email = "myemail@domain.com";
var filter = Builders<Subscription>.Filter.Eq("Children.Email", $"/{email}/i");
return await context.Subscriptions.Find(filter).ToListAsync();

1 个答案:

答案 0 :(得分:0)

有一个专用的类BsonRegularExpression,可以用作Regex方法的参数。简单Eq将尝试在此处执行常规的相等比较。试试这个:

var email = "myemail@domain.com";
var filter = Builders<Subscription>.Filter.Regex("Children.Email", new BsonRegularExpression(email, "i"));
return await context.Subscriptions.Find(filter).ToListAsync();