【发布时间】:2013-11-12 11:06:42
【问题描述】:
SELECT
Member_strMobileNo,
strMembername
FROM tblMembers WITH (NOLOCK)
WHERE CHARINDEX (LOWER(@strMembername), LOWER(strMembername)) > 0
OR CHARINDEX (LOWER(@strMobileNo), LOWER(Member_strMobileNo)) > 0
这是我想使用 C# 驱动程序从 MongoDB 获取数据的 SQL 查询。 我的 Json 结构是:
{
"memberName" : "seema",
"Email" : seema@gmail.com
"Mob" : 9876543
}
其实这个查询是用来搜索细节的。
在 mongo 我试过这个,
var query = Query.Or(Query.In("memberName", BsonRegularExpression.Create(String.Format("/{0}/i", strMemberName)) ),
new QueryDocument("Mob", BsonRegularExpression.Create(String.Format("/{0}/i", strMobileNo))).
但我想这个查询不会很好,因为 BsonRegularExpression 资源昂贵。检查这个this answer in that。
我正在使用 c#、mongoDb、mongodb C# 原生驱动程序。
如何优化这个.. 我是 mongoDb 的新手。 谢谢大家的回复。。
【问题讨论】:
-
不要使用正则表达式,只需像在 SQL 中那样将字符串标准化为一致的大小写。
-
这对codereview.stackexchange.com来说似乎是一个更好的问题
-
mnemosyn,对不起,我没有得到这个
标签: c# json mongodb query-optimization