比较MongoDB中的字段值

时间:2018-04-05 10:20:56

标签: mongodb

我想运行一个查询,从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#中?

1 个答案:

答案 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,应尽可能优先使用。