Můžete vytvořit regulární výraz zápas na polích v Mongu, takto byste udělali první ze svých vzorů:
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);
Buďte však opatrní, mnoho shod regulárních výrazů vyžaduje úplné prohledání tabulky. To znamená, že pokud je spustíte proti velké sbírce, motor bude muset iterovat všechny dokumenty (pravděpodobně narazí na disk) a každý jednotlivě zkontrolovat, zda se shodují. To je mnohem pomalejší než dotazy, které používají indexy.
Jedinými regulárními výrazy, které zasáhnou index, jsou shody s předponou rozlišující malá a velká písmena. Můžete takto vyhledat všechna „Po*“ a použít index:
Pattern p = Pattern.compile("^Mon.*");
BasicDBObject query = new BasicDBObject("name", p);
// finds all records with "name" matching /^Mon.*/
DBCursor cursor = collection.find(query);