Cet article partage l'opération Java Mongodb Fuzzy Query and Pagination Query pour votre référence. Le contenu spécifique est le suivant
Conditions de requête floue:
1. Match exact
Pattern Match = Pattern.Compile ("^ name $", pattern.case_insensitive);
2. Match droit
Pattern Match = Pattern.Compile ("^. * Nom $", pattern.case_insensitive);
3. Match gauche
Pattern Match = Pattern.Compile ("^ name. * $", Pattern.case_insensitive);
4. Matchage flou
Pattern Match = Pattern.Compile ("^. * Name8. * $", Pattern.case_insensitive);
Requête totale des enregistrements:
count (), renvoie le nombre total de requêtes.
Tri des enregistrements de requête:
BasicDbObObject Sort = new BasicDBObject ();
Sort.put ("nom", 1);
1. Représente l'ordre positif; -1. Représente l'ordre inverse
Query de pagination:
skip (), combien de disques sont sautés
limit (), combien d'enregistrements sont retournés
Exemple de code:
package 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.db; import com.mongodb.dbcollection; import com.mongodb.dbcursor; import com.mongodb.dbobject; import com.mongodb.mongoclient; import com.mongodb.mongoclientoptions; import com.mongodb. com.mongodb.serveraddress; classe publique OperatedEmo2 {/ ** * @return * @throws exception * / public static mongoclient getMongoclient () lève une exception {try { // =====================================================================================================================. serverlist.add (new ServerAddress ("192.168.18.85", 27017)); // =========================================================================. String username = "root"; String database = "Demo"; char [] mot de passe = "root123" .tocharArray (); mclist.add (MongoCredential.CreateCredential (nom d'utilisateur, base de données, mot de passe)); // ========================================================================================================. // Le nombre maximum de connexions pouvant être créés avec la base de données cible est 50 Builder.ConnectionsPerHost (50); // Si toutes les connexions sont actuellement utilisées, il peut y avoir 50 threads en file d'attente pour attendre Builder.ThreadsallowEdOblockForConnectionMultiplier (50); // Lorsqu'un thread accède à la base de données, le temps d'attente maximum avant d'obtenir avec succès une connexion de base de données disponible est de 2 minutes. // c'est plus dangereux. Si la connexion n'est pas obtenue après MaxwaitTime, le thread lancera une exception // Par conséquent, le jeu MaxwaitTime ici devrait être suffisamment grand pour éviter une défaillance d'accès à la base de données en raison d'un Builder de threads en filetage excessif.MaxWaitTime (1000 * 60 * 2); // Définissez le délai d'attente pour établir une connexion avec la base de données sur 1 minute Builder.ConnectTimeout (1000 * 60 * 1); // ================================================================================================. ==================================================================================================. MongoclientOptions MCO = builder.build (); retourner un nouveau mongoclient (serverlist, mclist, mco); } catch (exception e) {throw e; }} / ** * @param dbname * @return * @throws exception * / public static db getdb (string dbname) lève exception {return getMongoClient (). getdb (dbname); } / ** * @param db * / public static void collections (db db) {set <string> cols = db.getCollectionNames (); for (String collname: colls) {System.out.println (collname); }} / ** * Query pour les enregistrements totaux * * @param db * @param name * / public static void Count (db db, name de chaîne) {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 requête (db db, name de chaîne) {dbCollection dbColl = db.getCollection (name); // Match exact // Pattern Pattern = Pattern.Compile ("^ name $", pattern.case_insensitive); // Match droit // motif Pattern = Pattern.Compile ("^. * Nom $", pattern.case_insensitive); // Match gauche // Pattern Pattern = Pattern.Compile ("^ name. * $", Pattern.case_insensitive); // Fuzzy Match Pattern Pattern = Pattern.Compile ("^. * Name8. * $", Pattern.Case_inSensitive); BasicDBObject Query = new BasicDBObject (); query.put ("nom", modèle); BasicDbObObject Sort = new BasicDBObject (); // 1, indique un ordre positif; -1, indique l'ordre inversé Sort.put ("nom", 1); Dbcursor cur = dbcoll.find (query) .sort (tri); int count = 0; while (cur.hasnext ()) {dbObject obj = cur.next (); System.out.print ("name =" + obj.get ("name")); System.out.print (", email =" + obj.get ("email")); System.out.println (", passwd =" + obj.get ("passwd")); Count ++; } System.out.println ("Total:" + Count + "Items"); } / ** * Query de pagination * * @param db * @param name * @param start * @param pagesize * / public static void page (db db, name string, int start, int pageSize) {dbCollection dbcoll = db.getCollection (name); BasicDbObObject Sort = new BasicDBObject (); Sort.put ("nom", 1); Dbcursor cur = dbcoll.find (). Soi (tri) .skip (start) .limit (pagesize) ;; int count = 0; while (cur.hasnext ()) {dbObject obj = cur.next (); System.out.print ("name =" + obj.get ("name")); System.out.print (", email =" + obj.get ("email")); System.out.println (", passwd =" + obj.get ("passwd")); Count ++; } System.out.println ("Total:" + Count + "S"); } / ** * @param args * @throws exception * / public static void main (String [] args) lève l'exception {db db = getdb ("démo"); Collections (DB); String name = "utilisateurs"; System.out.println ("count () ================================================================================.); count (db, nom); System.out.println ("Query () =================================================================================.); Query (db, nom); System.out.println ("page () =============================================================== page (db, nom, 10, 10); }}Ce qui précède est le code d'implémentation pour les opérations Java MongoDB Fuzzy Query and Pagination Query. J'espère que cela sera utile à l'apprentissage de tous.