Du kan göra ett reguljärt uttryck matcha på fält i Mongo, så här skulle du göra det första av dina mönster:
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);
Var dock försiktig, många reguljära uttrycksmatchningar kräver en fullständig tabellskanning. Detta innebär att om du kör dem mot en stor samling, måste motorn iterera över alla dokument (förmodligen träffar disken) och kontrollera varje individuellt för en matchning. Detta är mycket långsammare än frågor som använder index.
De enda reguljära uttryck som kommer att träffa ett index är skiftlägeskänsliga prefixmatchningar. Du kan söka efter alla "Mon*" så här och använda ett index:
Pattern p = Pattern.compile("^Mon.*");
BasicDBObject query = new BasicDBObject("name", p);
// finds all records with "name" matching /^Mon.*/
DBCursor cursor = collection.find(query);