繁体   English   中英

MongoDB - Java:不是运算符和正则表达式

[英]MongoDB - Java: Not operator and regular expressions

我有问题将我的java代码中的下一行转换为mongoDB:

{ "field1.array": { $not : /\\w*(whatever)\\w*/ }}

我试过用这个:

Criteria criteria = new Criteria() {
   @Override
   public DBObject getCriteriaObject() {
      return 
         new BasicDBObject("field1.array",
           new BasicDBObject("$not",
           Pattern.compile(regexp)));
  }
};

哪个不起作用,因为它将正则表达式作为$regex函数发送,该函数与$not运算符不兼容。

我试图用这个来否定我的正则表达式: ^((?!my string).)*$如果我没有指定数组位置,它对我的​​数组都不起作用。

有任何想法吗?

我想,你只是缺少模式的“等于”。 从未尝试使用DBObject,但使用过滤器它的工作原理如下:

 collection.find(
    Filters.not(Filters.eq("myField", Pattern.compile("xyz.*")))
 )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM