Este artigo compartilha a operação Java MongoDB Fuzzy Query and Pagination Query para sua referência. O conteúdo específico é o seguinte
Condições de consulta difusa:
1. Partida exata
Padrão padrão = padrony.compile ("^name $", padring.case_insensitive);
2. Partida à direita
Padrão de padrão = padrony.compile ("^.*Nome $", padron.case_insensitive);
3. Partida à esquerda
Padrão de padrão = padrony.compile ("^name.*$", Padring.case_insensitive);
4. Combinação difusa
Padrão padrão = padrony.compile ("^.*Name8.*$", Padrony.case_insensitive);
Total de Registros Consulta:
count (), retorna o número total de consultas.
Classificação de registros de consulta:
BasicDBObject Sort = new BasicDBObject ();
Sort.put ("Nome", 1);
1. Representa ordem positiva; -1. Representa a ordem reversa
Consulta de paginação:
skip (), quantos registros são ignorados
limite (), quantos registros são devolvidos
Exemplo de código:
pacote com.what21.mongodb.demo; importar java.util.ArrayList; importar java.util.list; importar java.util.set; importar java.util.regex.pattern; importar com.mongodb.basicdbobject; importar com.mongodb.db; importar com.mongodb.dbcollection; importar com.mongodb.dbcursor; import com.mongodb.dbobject; import com.mongodb.mongoclient; import com.mongodb.monftions; com.mongodb.serveraddress; public class Operatedemo2 { / ** * @return * @throws Exception * / public static mongoclient getMongoclient () lança exceção {try { //= ================================================================================== // Listddrdddrd> Serverad> Serverad> ServerList.add (New ServerAddress ("192.168.18.85", 27017)); // =============================================================== // List <Mongocredential> McList = novo Arraylist <Mongocredential> (); String userName = "root"; String database = "Demo"; char [] senha = "root123" .toCharArray (); mclist.add (mongocredential.createcretencial (nome de usuário, banco de dados, senha)); // ========================================================================== // MongoclientOptions.Builder Builder = MongLeners = // O número máximo de conexões que podem ser criadas com o banco de dados de destino é 50 construtor.ConnectionSperhost (50); // Se todas as conexões estiverem atualmente em uso, poderá haver 50 threads na fila para aguardar o construtor.threadsallowedToBlockForConnectionMultiplier (50); // Quando um thread acessa o banco de dados, o tempo máximo de espera antes de obter com êxito uma conexão disponível no banco de dados é de 2 minutos. // Isso é mais perigoso. Se a conexão não for obtida após o maxwaittime, o thread lançará uma exceção //, portanto, o conjunto Maxwaittime aqui deve ser grande o suficiente para evitar a falha de acesso ao banco de dados devido a threads de fila excessivos.maxwaittime (1000*60*2); // Defina o tempo limite para estabelecer uma conexão com o banco de dados para 1 minuto construtor.ConnectTimeout (1000*60*1); //========================================================================================== ============================================================================================= MongoClientOptions MCO = Builder.Build (); Retornar novo Mongoclient (Serverlist, McList, MCO); } catch (Exceção e) {tiro e; }} / ** * @param dbname * @return * @throws Exception * / public static db getdb (string dbname) lança exceção {return getMongoclient (). getdb (dbname); } / ** * @param db * / public static void coletas (db db) {set <tring> cols = db.getCollectionNames (); for (string collName: cols) {System.out.println (collName); }} / ** * consulta para o total de registros * * @param db * @param nome * / public static void count (db db, nome da string) {dbCollection dbcoll = db.getCollection (nome); int conting = dbcoll.find (). count (); System.out.println ("Total:" + count + "s"); } / ** * consulta nebulosa * * @param db * @param nome * / public static void Query (db db, nome da string) {dbcollection dbcoll = db.getCollection (nome); // Match exato // Pattern Pattern = Pattern.comPile ("^Nome $", Pattern.Case_insensitive); // correspondência à direita // padrão de padrão = padrony.compile ("^.*Nome $", padrony.case_insensitive); // partida esquerda // padrão padrão = padrão.compile ("^nome.*$", Padrony.case_insensitive); // Pattern de Match Fuzzy Match = Pattern.compile ("^.*Nome8.*$", Pattern.case_insensitive); Consulta BasicDBObject = new BasicDBObject (); query.put ("nome", padrão); BasicDBObject Sort = new BasicDBObject (); // 1, indica ordem positiva; -1, indica classificação de ordem reversa.put ("nome", 1); Dbcursor cur = dbcoll.find (Query) .sort (stat); int conting = 0; while (cur.hasNext ()) {dbObject obj = cur.next (); System.out.print ("name =" + obj.get ("nome")); System.out.print (", email =" + obj.get ("email")); System.out.println (", passwd =" + obj.get ("passwd")); contagem ++; } System.out.println ("Total:" + count + "itens"); } / * * BasicDBObject Sort = new BasicDBObject (); Sort.put ("Nome", 1); Dbcursor cur = dbcoll.find (). Classy (classy) .skip (start) .limit (PageSize) ;; int conting = 0; while (cur.hasNext ()) {dbObject obj = cur.next (); System.out.print ("name =" + obj.get ("nome")); System.out.print (", email =" + obj.get ("email")); System.out.println (", passwd =" + obj.get ("passwd")); contagem ++; } System.out.println ("Total:" + count + "s"); } / ** * @param args * @throws exceção * / public static void main (string [] args) lança exceção {db db = getdb ("demonstração"); coleções (dB); String name = "usuários"; System.out.println ("count () ==================================================="); contagem (db, nome); System.out.println ("query () ==================================================="); consulta (db, nome); System.out.println ("Page () ==================================================="); página (db, nome, 10, 10); }}O exposto acima é o código de implementação para operações Java MongoDB Fuzzy Query and Pagination Query. Espero que seja útil para o aprendizado de todos.