我在这里有这样的查询:
var filter =
builder.Eq("BuyerDetails.Buyer.Email", request.BuyerEmail)
| builder.Eq("BuyerDetails.Buyer.FirstName", request.FirstName)
& builder.Eq("BuyerDetails.Buyer.Surname", request.LastName);
然而问题是,我无法预料的情况下,电子邮件,名和姓是蒙戈。
如果请求是名字=“堆栈”且姓氏=“溢出”
而mongo中的文档是“firstName =“stack”和LastName =“overflow”
它将不匹配。
如何使用筛选并使其不区分大小写?
1条答案
按热度按时间ijxebb2r1#
您需要使用
$regex
操作符。在MongoDB .NET驱动程序中,请参阅FilterDefinitionBuilder.Regex Method (FieldDefinition, BsonRegularExpression)。需要注意的是,上面的查询将查找字段值为的单据,但不保证从开始到结束。示例:
名字的搜索关键字:堆栈
| 名字|是否匹配?|
| - -|- -|
| 堆叠|是的|
| 堆栈xxx|是的|
| xxx堆栈|是的|
| xxx堆栈xxx|是的|
如果您要使用筛选字符串从头到尾的匹配项(完全匹配)来筛选文档,则需要在regex中使用
^
开始符号和$
结束符号。