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

3

请问有人知道如何使用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个回答

4

你只需要一个简单的前缀查询。那么你的正则表达式就是 ^ + searchKey。此外,使用这种形式可以让MongoDB在Name上使用索引。

var spec = new Document("Name", new MongoRegex(string.Format("^{0}",searchKey), "i"));
collection.Find(spec)

1

我认为在C#中不需要包含“/”符号,即:

spec.Add("Name", new MongoRegex(searchKey + "*", "i"));

1

在查看源代码后,我终于找到了答案 :)

var spec = new Document();
spec.Add("Name", new MongoRegex(".*" + searchKey + ".*", "i"));
collection.Find(spec)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接