Artikel ini berbagi Java Operation MongoDB Fuzzy Query dan Pagination Query untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Kondisi kueri fuzzy:
1. Pertandingan yang tepat
Pola pola = pola.compile ("^name $", pola.case_insensitive);
2. Pertandingan yang tepat
Pola pola = pola.compile ("^.*Name $", Pattern.Case_insensitive);
3. Pertandingan kiri
Pola pola = pola.compile ("^name.*$", Pola.case_insensitive);
4. Pencocokan fuzzy
Pola pola = pola.compile ("^.*Name8.*$", Pola.case_insensitive);
Total Records Kueri:
Count (), mengembalikan jumlah total kueri.
Penyortiran Catatan Permintaan:
BASICDBObject sort = new BasicDBObject ();
sort.put ("name", 1);
1. Mewakili urutan positif; -1. Mewakili urutan terbalik
Kueri pagination:
Skip (), berapa banyak catatan yang dilewati
limit (), berapa banyak catatan yang dikembalikan
Contoh kode:
paket com.what21.mongodb.demo; impor java.util.arraylist; import java.util.list; impor java.util.set; import java.util.regex.pattern; impor com.mongodb.basicdbObject; import com.mongodb.db; import com.mongodb.dbcollection; import com.mongodb.dbcursor; impor com.mongodb.dbobject; import com.mongodb.mongoclient; impor com.mongodb.mongoCionB.MongOplient; impor com.mongoDb.mongoCion com.mongodb.serveraddress; Kelas Publik OperatedEmo2 { / ** * @return * @throws Exception * / public static MongoClient getMongoClient () melempar Exception {coba { // =======================================================KAN serverlist.add (serveraddress baru ("192.168.18.85", 27017)); //===============================================================// List<MongoCredential> mcList = new ArrayList<MongoCredential>(); String username = "root"; String database = "demo"; char [] kata sandi = "root123" .tochararray (); McList.Add (Mongocredential.CreateCredential (nama pengguna, database, kata sandi)); // ========================================================================================================== // Jumlah maksimum koneksi yang dapat dibuat dengan basis data target adalah 50 builder.connectionperhost (50); // Jika semua koneksi saat ini sedang digunakan, mungkin ada 50 utas antri untuk menunggu pembangun. // Ketika utas mengakses database, waktu tunggu maksimum sebelum berhasil mendapatkan koneksi database yang tersedia adalah 2 menit. // Ini lebih berbahaya. Jika koneksi tidak diperoleh setelah maxWaitTime, utas akan melempar pengecualian // Oleh karena itu, set maxWaitTime di sini harus cukup besar untuk menghindari kegagalan akses basis data karena pembangun utas antrian yang berlebihan.maxwaittime (1000*60*2); // atur timeout untuk membuat koneksi dengan database ke 1 menit pembangun.connecttimeout (1000*60*1); // ===================================================================================================================================================== ================================================================================================================================================================== MongoclientOptions mCo = builder.build (); return new Mongoclient (ServerList, McList, MCO); } catch (Exception e) {throw e; }} / ** * @param dbname * @return * @throws Exception * / public static DB getDB (string dbname) melempar Exception {return getMongoClient (). getDb (dbName); } / ** * @param db * / public static void collections (db db) {set <string> cols = db.getCollectionNames (); untuk (string collname: colls) {system.out.println (collname); }} / ** * kueri untuk catatan total * * @param db * @param nama * / public static void count (db db, nama string) {dbcollection dbcoll = db.getCollection (name); int count = dbcoll.find (). count (); System.out.println ("Total:" + Count + "S"); } / ** * kueri fuzzy * * @param db * @param nama * / public static void query (db db, name string) {dbcollection dbcoll = db.getCollection (name); // pencocokan yang tepat // pola = pola.compile ("^name $", pola.case_insensitive); // kecocokan kanan // pola pola = pola. // Left Match // Pattern Pattern = Pattern.Compile ("^Name.*$", Pattern.Case_insensitive); // Fuzzy Match Pattern Pattern = Pattern.Compile ("^.*Name8.*$", Pattern.Case_insensitive); Query basicdbObject = basicdbobject () baru; query.put ("name", pola); BASICDBObject sort = new BasicDBObject (); // 1, menunjukkan urutan positif; -1, menunjukkan reverse order sort.put ("name", 1); Dbcursor cur = dbcoll.find (kueri) .sort (sort); 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:" + Hitung + "Item"); } / ** * kueri pagination * * @param db * @param nama * @param start * @param halamanze * / public static void halaman (db db, nama string, 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 (", 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) melempar pengecualian {db db = getDb ("demo"); Koleksi (DB); Name string = "pengguna"; System.out.println ("count () ==================================================="); hitung (db, nama); System.out.println ("query () ==================================================="); kueri (db, nama); System.out.println ("page () ==================================================="); halaman (db, nama, 10, 10); }}Di atas adalah kode implementasi untuk operasi Java MongoDB Fuzzy Query dan Pagination Query. Saya berharap ini akan membantu untuk pembelajaran semua orang.