2016-05-11 10 views
1

私はMongoDBのに私のJavaコードから次の行を変換するために問題を抱えている:のMongoDB - ジャワ:未オペレータと正規表現

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

私はこれを使用することを試みた:

それは $notオペレータとの互換性がありません $regex関数として正規表現を送信するために動作しません
Criteria criteria = new Criteria() { 
    @Override 
    public DBObject getCriteriaObject() { 
     return 
     new BasicDBObject("field1.array", 
      new BasicDBObject("$not", 
      Pattern.compile(regexp))); 
    } 
}; 

これで正規表現を無効にしようとしました。^((?!my string).)*$ 配列の位置を指定しないと、配列に対しては機能しません。

アイデア?

答えて

0

私は、パターンの「等しい」が足りないと思うでしょう。 DBObjectを試したことはありませんが、フィルタは次のように動作します。

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

このクラスはどのクラスですか? –

+0

com.mongodb.client.model.mongo Javaクライアントからのフィルタ – mtj

+0

このコードをmongodbクエリに変換できないため、動作しないと思わないでください。とにかくありがとう:) –