Este artículo comparte la Operación Java MongoDB Fuzzy Consulty y Pagination Consult para su referencia. El contenido específico es el siguiente
Condiciones de consulta difusa:
1. Match exacto
Pattern Pattern = Pattern.Compile ("^Nombre $", Pattern.case_insensitive);
2. Partido derecho
Pattern Pattern = Pattern.Compile ("^.*Nombre $", Pattern.case_insensitive);
3. Partido izquierdo
Pattern Pattern = Pattern.Compile ("^Nombre.*$", Pattern.case_insensitive);
4. Fuzzy Matching
Pattern Pattern = Pattern.Compile ("^.*Name8.*$", Pattern.case_insensitive);
Consulta total de registros:
Count (), devuelve el número total de consultas.
Clasificación de registro de consulta:
BasicDBObject sort = new BasicDBObject ();
sort.put ("nombre", 1);
1. Representa el orden positivo; -1. Representa el orden inverso
Consulta de paginación:
Skip (), cuántos registros se omiten
límite (), cuántos registros se devuelven
Ejemplo de código:
paquete com.what21.mongodb.demo; import java.util.arrayList; import java.util.list; import java.util.set; import java.util.regex.pattern; import com.mongoDB.BasicDBObject; import com.mongodb.Serveraddress; public class operatedemo2 { / ** * @return * @throws excepción * / public static mongoClient getMongoClient () lanza excepción {try { // =====================================================================================-- ServerList.Add (nuevo ServerAddress ("192.168.18.85", 27017)); // ========================================================= tiempos String UserName = "Root"; String database = "demo"; char [] contraseña = "root123" .ToCarArray (); McList.Add (MongoCredential.CreateCredential (nombre de usuario, base de datos, contraseña)); // ================================================. // El número máximo de conexiones que se pueden crear con la base de datos de destino es 50 Builder.ConnectionsPerhost (50); // Si todas las conexiones están actualmente en uso, puede haber 50 hilos en cola para esperar a Builder.ThreadsAllowedToBlockForConnectionMultiplier (50); // Cuando un hilo accede a la base de datos, el tiempo de espera máximo antes de obtener con éxito una conexión de base de datos disponible es de 2 minutos. // Esto es más peligroso. Si la conexión no se obtiene después de Maxwaittime, el hilo lanzará una excepción // por lo tanto, el conjunto MaxwaitTime aquí debe ser lo suficientemente grande como para evitar la falla de acceso a la base de datos debido a un excesivo constructor de subprocesos en cola. // Establezca el tiempo de espera para establecer una conexión con la base de datos a 1 minuto Builder. // =================================================================================. ==================================================================================================================================================== MongoClientOptions mco = Builder.Build (); devolver nuevo MongoClient (ServerList, MCLIST, MCO); } Catch (Exception e) {Throw E; }} / ** * @param dbname * @return * @throws excepción * / public static db getdb (string dbname) arroja excepción {return getMongoClient (). getDb (dbname); } / ** * @param db * / public static void colecciones (db db) {set <string> cols = db.getCollectionNames (); for (String CollName: Colls) {System.out.println (CollName); }} / ** * Consulta para registros totales * * @param db * @param name * / public static void Count (db db, name de cadena) {dbcollection dbcoll = db.getCollection (name); int count = dbcoll.find (). count (); System.out.println ("Total:" + Count + "S"); } / ** * Fuzzy Query * * @param db * @param name * / public static void Query (db db, name de cadena) {dbCollection dbcoll = db.getCollection (name); // EXACTO Match // Pattern Pattern = Pattern.Compile ("^Name $", Pattern.case_insensitive); // Right Match // Pattern Pattern = Pattern.Compile ("^.*Nombre $", Pattern.case_insensitive); // Left Match // Pattern Pattern = Pattern.Compile ("^Name.*$", Pattern.case_insensitive); // Patrón de patrón de coincidencia de combate difuso = Pattern.Compile ("^.*Name8.*$", Pattern.case_insensitive); BasicDBobject Query = new BasicDBObject (); query.put ("nombre", patrón); BasicDBObject sort = new BasicDBObject (); // 1, indica un orden positivo; -1, indica el orden inverso sort.put ("nombre", 1); Dbcursor cur = dbcoll.find (consulta) .sort (sort); int count = 0; while (cur.hasnext ()) {dbobject obj = cur.next (); System.out.print ("name =" + obj.get ("name")); System.out.print (", correo electrónico =" + obj.get ("correo electrónico")); System.out.println (", passwd =" + obj.get ("passwd")); contar ++; } System.out.println ("Total:" + Count + "Elementos"); } / ** * consulta de paginación * * @param db * @param name * @param start * @param pagesize * / public static void página (db db, name de cadena, int inicio, int pageSize) {dbCollection dbColl = db.getCollection (nombre); BasicDBObject sort = new BasicDBObject (); sort.put ("nombre", 1); Dbcursor cur = dbcoll.find (). Sort (sort) .skip (inicio) .limit (pageSize) ;; int count = 0; while (cur.hasnext ()) {dbobject obj = cur.next (); System.out.print ("name =" + obj.get ("name")); System.out.print (", correo electrónico =" + obj.get ("correo electrónico")); System.out.println (", passwd =" + obj.get ("passwd")); contar ++; } System.out.println ("Total:" + Count + "S"); } / ** * @param args * @throws excepción * / public static void main (string [] args) lanza la excepción {db db = getDb ("demo"); colecciones (db); Name de cadena = "usuarios"; System.out.println ("count () ==================================================="); contar (db, nombre); System.out.println ("Query () ===================================================="); consulta (db, nombre); System.out.println ("Page () ===================================================="); Página (DB, nombre, 10, 10); }}Lo anterior es el código de implementación para las operaciones de Java MongoDB Fuzzy Consuly y Pagination Consult. Espero que sea útil para el aprendizaje de todos.