如何使用MongoRegex(MongoDB C#驱动程序)

时间:2010-03-26 23:30:03

标签: mongodb mongodb-.net-driver

有没有人知道如何使用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 */

驱动程序是否可能将双引号应用于正则表达式?

谢谢..

3 个答案:

答案 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)