java操作mongo查詢的實例詳解
前言:
MongoDB是一個基于分布式文件存儲的數據庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
在可視化工具中查詢非常方便,類似于 {' key' : ' value' },這種查詢,高級查詢也類似,比如查詢某個字段的值大于5,我們就可以查 {' key' : { $gt : 5} }, 這要歸功于monggo 面向集合存儲,存儲對象類型的數據(JSON的二進制數據BSON),這要以來,查詢很方便,其它的高級查詢,比如小于$lt,大于等于$gte,小于等于$lte, 在某個范圍$in, 不在某個范圍$nin,等等,都可以通過上面的方式查詢出來。
現在通過java中的一些代碼展示通過java來操縱mongo 查詢。其中包含準確匹配查詢,高級查詢,在兩個時間范圍內查詢,模糊查詢,分頁實現等查詢。
詳細見代碼。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
try { System.out.println( "=========********測試3開始**********===========*************" ); //先獲取mongo庫的集合DBCollection對象 DBCollection data = (DBCollection) mongoClientService.getColectionByName( "mongo庫集合名稱" ); BasicDBObject query3 = new BasicDBObject(); query3.put( "name" , "Tom" ); //查找姓名為Tom //查詢兩個時間范圍的,用map包裝一下 Map<String, Object> queryMap = new HashMap<>(); queryMap.put( "$gt" , "1496911821071" ); queryMap.put( "$lt" , "1496915447871" ); query3.put( "timeStamp" , new BasicDBObject(queryMap)); //模糊匹配rule查詢 query3.put( "businessRuleName" , new BasicDBObject( "$regex" , "rule" )); DBCursor result3 = data.find(query3); String resultCode = "4" ; if ( "4" .equals(resultCode)) { BasicDBList cond = new BasicDBList(); cond.add( "0" ); cond.add( "1" ); cond.add( "2" ); cond.add( "3" ); query3.put( "resultCode" , new BasicDBObject( "$nin" , cond)); //查詢resultCode不是0,1,2,3的 } System.out.println(result3.count()); //count()方法得到查詢到的記錄數 result3.skip( 10 ).limit( 20 ); //分頁,skip():從第幾條開始,limit():限制返回的條數 while (result3.hasNext()) { DBObject dbObject = (DBObject) result3.next(); System.out.println(JSON.serialize(dbObject)); System.out.println( "------------" ); } System.out.println(result3.count()); // System.out.println( "=========********測試3結束**********===========*************" ); } catch (Exception e) { e.printStackTrace(); System.out.println( "---------測試3異常了----------" ); } |
上面包含了很多方式的查詢的例子,主要操縱的是 DBCollection, BasicDBObject, DBCursor , BasicDBList 這四個類,僅供參考。
如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://blog.csdn.net/kdc18333608478/article/details/73167706