0

以下のクエリ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。(例: 「エラー」、「タイムアウト」、「応答時間」...)。

or2 つのリストを介してデータベースにクエリを実行するにはどうすればよいですか。たとえば、_idフィールドがに含まれる文字列と等しい場所と、フィールドがに含まれる文字列statisticsnameある場所を一致させたいとしnetworksます。

他のトピックを読んだことから$elemMatch、高度なクエリが でどのように機能するかについての理解は限られていますが、解決策があると思いますmongoDB

4

1 に答える 1

0

$and と $or を組み合わせて使用​​できます

test:Mongo > db.test.insert({ _id : "abhi", name : "kumar" })
test:Mongo > db.test.find({ $and : [ {$or : [ { _id : /abhi/ } ]}, {$or : [ { name : /kumar/ } ] } ] })
{ "_id" : "abhi", "name" : "kumar" }
于 2013-06-27T08:45:58.003 に答える