有没有人有任何想法如何使用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 */

是可能的是,驾驶员施加双引号的正则表达式?

谢谢..

有帮助吗?

解决方案

您只想要一个简单的前缀查询。你的正则表达式是那么^ + searchKey。另外,这种形式将允许mongodb的对名称使用索引。

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

其他提示

我认为你需要不包含 “/” S在C#中,即,

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

挖的源代码之后,我终于找到了答案:)

var spec = new Document();
spec.Add("Name", new MongoRegex(".*" + searchKey + ".*", "i"));
collection.Find(spec)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top