Mongodb .Net 驱动查找不区分大小写
Mongodb .Net driver Find case insensitive
鉴于以下 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();
有一个专用的class BsonRegularExpression
可以作为Regex
方法的参数。 Simple 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();
鉴于以下 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();
有一个专用的class BsonRegularExpression
可以作为Regex
方法的参数。 Simple 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();