有没有人知道如何使用MongoRegex进行文档搜索?
我尝试了这个,但没有回复:
var spec = new Document();
spec.Add("Name", new MongoRegex("/" + searchKey + "*/", "i"));
collection.Find(spec)
想知道为什么它不起作用,我试图从控制台执行以下命令:
db.things.find({"Name":/john*/i}) /* WORKS */
db.things.find({"Name":"/john*/i"}) /* DOESN'T WORK */
驱动程序是否可能将双引号应用于正则表达式?
谢谢..
答案 0 :(得分:2)
你只想要一个简单的前缀查询。你的正则表达式是^ + searchKey。此外,此表单将允许mongodb在名称上使用索引。
var spec = new Document("Name", new MongoRegex(string.Format("^{0}",searchKey), "i"));
collection.Find(spec)
答案 1 :(得分:0)
我认为您不需要在C#中加入“/”,即
spec.Add("Name", new MongoRegex(searchKey + "*", "i"));
答案 2 :(得分:0)
在挖掘源代码后,我终于找到了答案:)
var spec = new Document();
spec.Add("Name", new MongoRegex(".*" + searchKey + ".*", "i"));
collection.Find(spec)