Dieser Artikel teilt die Java -Operation MongoDB Fuzzy -Abfrage und Pagination -Abfrage als Referenz. Der spezifische Inhalt ist wie folgt
Fuzzy -Abfragebedingungen:
1. genaue Übereinstimmung
Muster muster = muster.comPile ("^name $", muster.case_inemsitiv);
2. Right Match
Muster muster = muster.comPile ("^.*Name $", muster.case_inemsitiv);
3. Linksmatch
Muster muster = muster.comPile ("^name.*$", Muster.case_inemsitiv);
4. Fuzzy Matching
Muster muster = muster.comPile ("^.*Name8.*$", Muster.case_inemsitiv);
Total Records Abfrage:
count () gibt die Gesamtzahl der Abfragen zurück.
Abfrage -Datensatzsortierung:
BasicDBObject Sort = new BasicDBObject ();
sort.put ("name", 1);
1. repräsentiert eine positive Ordnung; -1. Repräsentiert umgekehrte Reihenfolge
Paginationsanfrage:
Skip (), wie viele Datensätze übersprungen werden
Limit (), wie viele Datensätze zurückgegeben werden
Codebeispiel:
Paket com.what21.mongodb.demo; Import Java.util.ArrayList; Import Java.util.List; Import Java.util.set; Import Java.util.regex.Pattern; importieren com.mongodb.basicdbObject; import comongodb.db; import comongodb.dbcollection; import comongodb.dbcursor import com.mongodb.dbObject; import com.mongoclocdb.mongodb.mongochb.Mongoclient; com.Mongodb.Serveraddress; öffentliche Klasse OperatedEmo2 { / ** * @return * @throws Exception * / public static mongoclient getMongoclient () löst Ausnahme {try { // ===============================================================================================================================// List <) (). serverlist.add (neuer ServerAddress ("192.168.18.85", 27017)); //===============================================================// List<MongoCredential> mcList = new ArrayList<MongoCredential>(); String username = "root"; String Database = "Demo"; char [] password = "root123" .tocharArray (); mclist.add (mongocredential.createcredential (Benutzername, Datenbank, Passwort)); // ====================================================================================== Builder Builders = Mongoclientopions.builders (). // Die maximale Anzahl von Verbindungen, die mit der Zieldatenbank erstellt werden können, beträgt 50 Builder.ConnectionSperhost (50); // Wenn derzeit alle Verbindungen verwendet werden, kann es 50 Threads in der Wartezeit auf Builder. // Wenn ein Thread auf die Datenbank zugreift, beträgt die maximale Wartezeit vor erfolgreicher Datenbankverbindung 2 Minuten. // Das ist gefährlicher. Wenn die Verbindung nach Maxwaittime nicht erhalten wird, wird der Thread eine Ausnahme ausgelöst // Daher sollte der hier eingestellte Maxwaittime -Set groß genug sein, um einen Datenbankzugangsausfall aufgrund übermäßiger Threads Builder in Warteschlangen zu vermeiden. Maxwaittime (1000*60*2); // Stellen Sie die Zeitüberschreitung für die Erstellung einer Verbindung mit der Datenbank auf 1 Minute Builder.ConnectTimeout (1000*60*1) fest; //========================================================================================== ======================================================================ieben Mongoclientoptions mco = builder.build (); Neue Mongoclient zurückgeben (ServerList, McList, MCO); } catch (Ausnahme e) {throw e; }} / ** * @param dbname * @return * @throws Exception * / public static db getdb (string dbname) löst Ausnahme aus {return getMongoclient (). getdb (dbname); } / ** * @param db * / public static void collections (db db) {set <string> cols = db.getCollectionNames (); für (String Collname: Colls) {System.out.println (Collname); }} / ** * Abfrage nach Gesamtdatensätzen * * @param db * @param name * / public static void count (db db, string name) {dbcollection dbcoll = db.getCollection (Name); int count = dbcoll.find (). count (); System.out.println ("Gesamt:" + count + "S"); } / ** * fuzzy query * * @param db * @param name * / public static void query (db db, String name) {dbcollection dbcoll = db.getCollection (Name); // exakte Übereinstimmung // muster muster = muster.comPile ("^name $", muster.case_inemsitiv); // Rechtsübereinstimmung // muster muster = muster.comPile ("^.*Name $", muster.case_insensitiv); // links übereinstimmt // muster muster = muster.comPile ("^name.*$", Muster.case_insensitiv); // Fuzzy Match muster muster = muster.comPile ("^.*Name8.*$", Muster.case_inemsitiv); BasicDBObject query = new BasicDBObject (); query.put ("name", muster); BasicDBObject Sort = new BasicDBObject (); // 1 zeigt eine positive Ordnung an; -1 zeigt die umgekehrte Reihenfolge Sortierung an. Put ("Name", 1); DbCursor cur = dbcoll.find (Abfrage) .sort (sortieren); int count = 0; while (cur.hasnext ()) {dBObject obj = cur.next (); System.out.print ("name =" + obj.get ("name")); System.out.print (", E -Mail =" + obj.get ("E -Mail")); System.out.println (", passwd =" + obj.get ("passwd")); zählen ++; } System.out.println ("Gesamt:" + count + "items"); } / ** * Pagination Query * * @param db * @param name * @param start * @param pageSize * / public static void Seite (db db, String name, int start, int pageSize) {dbcollection dbcoll = db.getCollection (Name); BasicDBObject Sort = new BasicDBObject (); sort.put ("name", 1); DbCursor cur = dbcoll.find (). Sort (sort) .skip (start) .limit (pageSize) ;; int count = 0; while (cur.hasnext ()) {dBObject obj = cur.next (); System.out.print ("name =" + obj.get ("name")); System.out.print (", E -Mail =" + obj.get ("E -Mail")); System.out.println (", passwd =" + obj.get ("passwd")); zählen ++; } System.out.println ("Gesamt:" + count + "S"); } / ** * @param args * @throws Exception * / public static void main (String [] args) löst eine Ausnahme aus {db db = getdb ("Demo"); Sammlungen (DB); String name = "Benutzer"; System.out.println ("count () =============================================="); count (db, name); System.out.println ("query () ==============================================="); Abfrage (DB, Name); System.out.println ("page () =============================================="); Seite (DB, Name, 10, 10); }}Das obige ist der Implementierungscode für Java -Operationen MongoDB Fuzzy -Abfrage und Paginierungsabfrage. Ich hoffe, es wird für das Lernen aller hilfreich sein.