MongoDB模糊查询java实现样例
2017-11-21 15:25
375 查看
在我的mongoDB中北京共有16个区县
其中只有密云和延庆是县,其他的为区,现在要将这两个例外查出来
直接用mongoDB shell命令是这样查询的:
java实现如下:
结果:
其中只有密云和延庆是县,其他的为区,现在要将这两个例外查出来
直接用mongoDB shell命令是这样查询的:
db.country.find({'name':{$regex:/县/},'sheng':'11','level':3})
java实现如下:
package com.adtec.mongodb; import java.util.Iterator; 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; /** * * @author 浪丶荡 * <br> * 模糊查询实例 * */ public class BlurQuery { private String host = "192.168.71.193"; private int port = 27017; public static void main(String[] args) { BlurQuery blurQuery = new BlurQuery(); //数据库test String dbname = "test"; DB db = blurQuery.getDB(dbname); //集合country String collectionName = "country"; //获取结果集 DBCursor cur = blurQuery.query(db, collectionName); //show一下结果 blurQuery.printDBCursor(cur); } /** * * @param dbname * @return 获取一个与指定数据库相关联的DB对象 */ public DB getDB(String dbname) { @SuppressWarnings("resource") MongoClient mongoClient = new MongoClient(host, port); @SuppressWarnings("deprecation") DB db = mongoClient.getDB(dbname); return db; } /** * * @param db * @param name * @return DBCursor * 查询北京市县级单位带"县"字的城市<br> * mongodb vue 是db.country.find({'name':{$regex:/县/},'sheng':'11','level':3}) */ public DBCursor query(DB db, String collectionName) { DBCollection dbColl = db.getCollection(collectionName); // 模糊匹配正则规则(只要名字里带县字) Pattern pattern = Pattern.compile("^.*县.*$", Pattern.CASE_INSENSITIVE); BasicDBObject query = new BasicDBObject(); //加入查询条件 query.put("name", pattern); query.put("sheng", "11"); query.put("level", 3); //按名次升序排序 BasicDBObject sort = new BasicDBObject(); // 1,表示正序; -1,表示倒序 sort.put("name", 1); DBCursor cur = dbColl.find(query).sort(sort); return cur; } /** * 遍历结果集 * @param cur */ private void printDBCursor(DBCursor cur) { Iterator<DBObject> iterator = cur.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } } }
结果:
十一月 21, 2017 3:12:16 下午 com.mongodb.diagnostics.logging.JULLogger log 信息: Cluster created with settings {hosts=[192.168.71.193:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500} 十一月 21, 2017 3:12:16 下午 com.mongodb.diagnostics.logging.JULLogger log 信息: No server chosen by ReadPreferenceServerSelector{readPreference=primary} from cluster description ClusterDescription{type=UNKNOWN, connectionMode=SINGLE, serverDescriptions=[ServerDescription{address=192.168.71.193:27017, type=UNKNOWN, state=CONNECTING}]}. Waiting for 30000 ms before timing out 十一月 21, 2017 3:12:16 下午 com.mongodb.diagnostics.logging.JULLogger log 信息: Opened connection [connectionId{localValue:1, serverValue:14}] to 192.168.71.193:27017 十一月 21, 2017 3:12:16 下午 com.mongodb.diagnostics.logging.JULLogger log 信息: Monitor thread successfully connected to server with description ServerDescription{address=192.168.71.193:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[3, 4, 5]}, minWireVersion=0, maxWireVersion=5, maxDocumentSize=16777216, roundTripTimeNanos=1732855} 十一月 21, 2017 3:12:16 下午 com.mongodb.diagnostics.logging.JULLogger log 信息: Opened connection [connectionId{localValue:2, serverValue:15}] to 192.168.71.193:27017 { "_id" : { "$oid" : "59ec563f937ceb812c804c65"} , "code" : "110228" , "sheng" : "11" , "di" : "02" , "xian" : "28" , "name" : "密云县" , "level" : 3.0} { "_id" : { "$oid" : "59ec563f937ceb812c804c66"} , "code" : "110229" , "sheng" : "11" , "di" : "02" , "xian" : "29" , "name" : "延庆县" , "level" : 3.0}
相关文章推荐
- JSP+Servlet+javabean+mysql实现页面多条件模糊查询
- mapxtreme for java 实现模糊查询
- 在java List中进行模糊查询的实现方法
- java 中 mongodb的各种操作 模糊查询 精确查询 等等
- java中如何实现模糊分页查询
- 用java实现mongodb正则查询小技巧
- mogoTemplate 模板 实现mongodb java的操作 ,根据经纬度查询周边
- java操作mongodb模糊查询
- 【Java框架型项目从入门到装逼】第十五节 - jdbc模糊查询实现(附带详细调试过程)
- java mongodb 包含与不包含 的 模糊查询
- Java 实现对mongodb and or 和and or联合查询操作
- 用java实现mongodb正则查询小技巧
- Java操作mongodb的模糊查询和精确查询
- 浅谈java实现mongoDB的多条件查询
- java 中 mongodb的各种操作 模糊查询 精确查询 等等
- mongodb java增删该查和模糊、排序和分页查询
- Java中文键树的一种实现(附带模糊查询功能)
- java 中 mongodb的各种操作 模糊查询 精确查询 等等
- java 中 mongodb的各种操作 模糊查询 精确查询 等等
- MongoDB 模糊查询的三种实现方式-morphia实现