تشارك هذه المقالة Java Operation Mongodb Fuzzy Query and Pagination Query للرجوع إليها. المحتوى المحدد كما يلي
شروط الاستعلام الغامضة:
1. تطابق بالضبط
Pattern Pattern = pattern.compile ("^name $" ، pattern.case_insensitive) ؛
2. المباراة اليمنى
نمط نمط = pattern.compile ("^.*name $" ، pattern.case_insensitive) ؛
3. المباراة اليسرى
نمط نمط = pattern.compile ("^name.*$" ، pattern.case_insensitive) ؛
4. مطابقة غامضة
نمط نمط = pattern.compile ("^.*name8.*$" ، pattern.case_insensitive) ؛
إجمالي استعلام السجلات:
العد () ، إرجاع العدد الإجمالي للاستفسارات.
فرز سجل الاستعلام:
BasicDbObject sort = new basicdbobject () ؛
sort.put ("الاسم" ، 1) ؛
1. يمثل الترتيب الإيجابي ؛ -1. يمثل الترتيب العكسي
استعلام ترقيم الصفحات:
تخطي () ، كم عدد السجلات التي يتم تخطيها
limit () ، كم عدد السجلات التي يتم إرجاعها
مثال رمز:
حزمة com.what21.mongodb.demo ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛ استيراد java.util.set ؛ استيراد java.util.regex.pattern ؛ استيراد com.mongodb.basicdbobject ؛ استيراد com.mongodb.db ؛ استيراد com.mongodb.dbcollection ؛ استيراد com.mongodb.dbcurs ؛ استيراد com.mongodb.dbobject ؛ استيراد com.mongodb.mongoclient ؛ استيراد com.mongodb.mongoclientoptions ؛ import com.mongodb.serveraddress ؛ الفئة العامة yourspatedemo2 { / ** * regurn * @Throws استثناء * / public static mongoclient getMongoclient () رمي الاستثناء {try { . ServerList.add (ServerAddress جديد ("192.168.18.85" ، 27017)) ؛ . سلسلة المستخدم = "الجذر" ؛ سلسلة قاعدة البيانات = "Demo" ؛ char [] password = "root123" .tochararray () ؛ mclist.add (mongocredential.createcredential (اسم المستخدم ، قاعدة البيانات ، كلمة المرور)) ؛ // ======================================================================== ^ // الحد الأقصى لعدد الاتصالات التي يمكن إنشاؤها باستخدام قاعدة البيانات الهدف هو 50 Builder.ConnectionSperhost (50) ؛ // إذا كانت جميع الاتصالات قيد الاستخدام حاليًا ، فيمكن أن يكون هناك 50 موضوعًا في قائمة الانتظار لانتظار Builder.ThreadSallOllockedToBlockForConnectionMultiplier (50) ؛ // عندما يصل مؤشر ترابط إلى قاعدة البيانات ، فإن الحد الأقصى لوقت الانتظار قبل الحصول على اتصال قاعدة بيانات متاح بنجاح 2 دقيقة. // هذا أكثر خطورة. إذا لم يتم الحصول على الاتصال بعد maxwaittime ، فسوف يرمي مؤشر الترابط استثناءً // لذلك ، يجب أن يكون maxwaittime هنا كبيرًا بما يكفي لتجنب فشل الوصول إلى قاعدة البيانات بسبب خيوط قائمة الانتظار المفرطة builder.maxwaittime (1000*60*2) ؛ // قم بتعيين المهلة لإنشاء اتصال مع قاعدة البيانات إلى Builder.ConnectTimeOut (1000*60*1) ؛ // ================================================================================== ====================================================================================== mongoclientoptions mco = builder.build () ؛ إرجاع Mongoclient جديد (Serverlist ، McList ، MCO) ؛ } catch (استثناء e) {throw e ؛ }} / ** * param dbname * regurn * @throws استثناء * / public static db getDB (String dbname) يلقي الاستثناء {return getMongoclient (). getDB (dbname) ؛ } / ** * param db * / public static void collections (db db) {set <string> cols = db.getCollectionNames () ؛ لـ (string collname: colls) {system.out.println (collname) ؛ }} / ** * Query for Total Records * * 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 ("Total:" + count + "s") ؛ } / ** * Query fuzzy * * param db * param الاسم * / استعلام باطل ثابت عام (db db ، اسم السلسلة) {dbCollection dbcoll = db.getCollection (name) ؛ // match match // pattern pattern = pattern.compile ("^name $" ، pattern.case_insensitive) ؛ // right match // pattern pattern = pattern.compile ("^.*name $" ، pattern.case_insensitive) ؛ // اليسار مطابقة // pattern pattern = pattern.compile ("^name.*$" ، pattern.case_insensitive) ؛ // fuzzy match pattern = pattern.compile ("^.*name8.*$" ، pattern.case_insensitive) ؛ BasicDbObject Query = New BasicDbobject () ؛ Query.put ("الاسم" ، نمط) ؛ BasicDbObject sort = new basicdbobject () ؛ // 1 ، يشير إلى ترتيب إيجابي ؛ -1 ، يشير إلى ترتيب عكسي sort.put ("الاسم" ، 1) ؛ dbcursor cur = dbcoll.find (query) .sort (sort) ؛ عدد int = 0 ؛ بينما (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 Pagination * * param db * param name * param start * param pagesize * / public static void page (db db ، string name ، int start ، int pagesize) {dbcollection dbcoll = db.getCollection (name) ؛ BasicDbObject sort = new basicdbobject () ؛ sort.put ("الاسم" ، 1) ؛ dbcursor cur = dbcoll.find (). sort (sort) .Skip (start) .Limit (pagesize) ؛؛ عدد int = 0 ؛ بينما (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 * athrows استثناء * / public static void main (string [] args) rems {db db = getDb ("demo") ؛ مجموعات (DB) ؛ اسم السلسلة = "المستخدمين" ؛ System.out.println ("count () =================================================") ؛ العد (DB ، الاسم) ؛ System.out.println ("Query () ==================================================") ؛ الاستعلام (DB ، الاسم) ؛ System.out.println ("page () =================================================") ؛ الصفحة (DB ، الاسم ، 10 ، 10) ؛ }}ما ورد أعلاه هو رمز التنفيذ لعمليات Java Mongodb Fuzzy Query and Pagination Query. آمل أن يكون ذلك مفيدًا لتعلم الجميع.