SELECT
Member_strMobileNo,
strMembername
FROM tblMembers WITH (NOLOCK)
WHERE CHARINDEX (LOWER(@strMembername), LOWER(strMembername)) > 0
OR CHARINDEX (LOWER(@strMobileNo), LOWER(Member_strMobileNo)) > 0
这是我的SQL查询我想使用C#驱动程序从MongoDB获取数据。 我的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.Check this this answer in that。
我正在使用c#,mongoDb,mongodb C#native driver。
如何优化这个.. 我是mongoDb的新手.. 感谢所有回复..
答案 0 :(得分:1)
您可以使用聚合项目$ toLower参见:http://docs.mongodb.org/manual/reference/operator/aggregation/toLower/
像: db.posts.aggregate([{$项目:{DATE2: “$日期”,标题:{$ TOLOWER: “$标题”}}}
答案 1 :(得分:0)
没有简单的方法可以有效地使用MongoDB。
我建议您维护字段的小写版本(例如normalizedMemberName),将它们编入索引并将其用于查询。