我MongoDB.Drivers
在我的 Web 应用程序中使用 nuget 包MVC (C#)
与 MongoDB 数据库进行通信。现在,我想根据特定列及其值获取数据。我使用下面的代码来获取数据。
var findValue = "John";
var clientTest1 = new MongoClient("mongodb://localhost:XXXXX");
var dbTest1 = clientTest1.GetDatabase("Temp_DB");
var empCollection = dbTest1.GetCollection<Employee>("Employee");
var builder1 = Builders<Employee>.Filter;
var filter1 = builder1.Empty;
var regexFilter = new BsonRegularExpression(findValue, "i");
filter1 = filter1 & builder1.Regex(x => x.FirstName, regexFilter);
filter1 = filter1 & builder1.Eq(x => x.IsDeleted,false);
var collectionObj = await empCollection.FindAsync(filter1);
var dorObj = collectionObj.FirstOrDefault();
但是,上面的代码正在执行like
查询。这意味着它正在作为 ( select * from Employee where FirstName like '%John%'
) 我不想要这个。我只想获取那些FirstName
值应该完全匹配的数据。(就像在这种情况下 FirstName 应该等于John
)。
我该如何执行此操作,任何人都可以为此提供建议。
注意: 我曾经new BsonRegularExpression(findValue, "i")
搜索过case-insensitive
。
任何帮助将不胜感激。
谢谢