以下のクエリsearchQuery
を使用して正規表現を適用しています。
BasicDBObject searchQuery = new BasicDBObject();
Pattern regex;
BasicDBList or = new BasicDBList();
for (String s : statistics) {
regex = Pattern.compile(s);
DBObject statRegex = new BasicDBObject("_id", regex);
or.add(statRegex);
}
searchQuery.put("$or", or);
_id
フィールドが という配列リスト内の文字列の 1 つの値を持つ結果を検索しますstatistics
。(例: 「エラー」、「タイムアウト」、「応答時間」...)。
or
2 つのリストを介してデータベースにクエリを実行するにはどうすればよいですか。たとえば、_id
フィールドがに含まれる文字列と等しい場所と、フィールドがに含まれる文字列statistics
でname
ある場所を一致させたいとしnetworks
ます。
他のトピックを読んだことから$elemMatch
、高度なクエリが でどのように機能するかについての理解は限られていますが、解決策があると思いますmongoDB
。