正規表現 を実行できます Mongoのフィールドで一致する場合、最初のパターンを実行する方法は次のとおりです。
Pattern p = Pattern.compile("Mon.*DB", CASE_INSENSITIVE);
BasicDBObject query = new BasicDBObject("name", p);
// finds all records with "name" matching /Mon.*DB/i
DBCursor cursor = collection.find(query);
ただし、多くの正規表現の一致には全表スキャンが必要であることに注意してください。これは、大規模なコレクションに対してそれらを実行する場合、エンジンはすべてのドキュメント(おそらくディスクにヒットする)を反復処理し、それぞれが一致するかどうかを個別にチェックする必要があることを意味します。これは、インデックスを使用するクエリよりもはるかに低速です。
インデックスにヒットする正規表現は、大文字と小文字を区別するプレフィックスの一致のみです。このようにすべての「Mon*」を検索して、インデックスを使用できます:
Pattern p = Pattern.compile("^Mon.*");
BasicDBObject query = new BasicDBObject("name", p);
// finds all records with "name" matching /^Mon.*/
DBCursor cursor = collection.find(query);