我想运行一个查询,从MongoDB数据库中找到以下文档
{field1:"foo",field2:"barfoobar"}
我知道相等,我可以使用以下查询:
.find({ $where : "this.field1 == this.field2" })
在C#中
new BsonDocument("$where", new BsonJavaScript("this.field1 == this.field2"));
但我如何在上面的查询中使用正则表达式? 像这样的东西:
.find({ $where : "this.field1 like this.field2" })
在C#中?
答案 0 :(得分:0)
使用以下查询并检查它是否适合您。如果有帮助,请告诉我:
db.col.find( { $where: function() {
var regex = new RegExp(this.field1);
return (regex.test(this.field2))
} }).pretty();
上面的查询将foo转换为正则表达式(类似于/ foo /)并检查field2是否与您传递的正则表达式匹配。
仅供参考:以下声明来自mongodb网站。考虑一下:
版本3.6中更改:$ expr运算符允许在查询语言中使用聚合表达式。 $ expr比$ where快,因为它不执行JavaScript,应尽可能优先使用。