sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo realizar una búsqueda con comodines en MongoDB usando Java

Puede hacer una Expresión regular coincidencia en campos en Mongo, así es como haría el primero de sus patrones:

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);

Sin embargo, tenga cuidado, muchas coincidencias de expresiones regulares requieren una exploración completa de la tabla. Esto significa que si los ejecuta en una colección grande, el motor tendrá que iterar sobre todos los documentos (probablemente en el disco) y verificar cada uno individualmente para encontrar una coincidencia. Esto es mucho más lento que las consultas que usan índices.

Las únicas expresiones regulares que alcanzarán un índice son las coincidencias de prefijos que distinguen entre mayúsculas y minúsculas. Podrías buscar todos los "Mon*" como este y usar un índice:

Pattern p = Pattern.compile("^Mon.*");
BasicDBObject query = new BasicDBObject("name", p);

// finds all records with "name" matching /^Mon.*/
DBCursor cursor = collection.find(query);