国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

java操作mongoDB查詢的實例詳解

2020-10-29 18:45:05
字體:
供稿:網(wǎng)友

java操作mongo查詢的實例詳解

前言:

 MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。

     MongoDB是一個介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產(chǎn)品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數(shù)據(jù)類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。

    在可視化工具中查詢非常方便,類似于 {' key' : ' value' },這種查詢,高級查詢也類似,比如查詢某個字段的值大于5,我們就可以查 {' key' : { $gt : 5} }, 這要歸功于monggo 面向集合存儲,存儲對象類型的數(shù)據(jù)(JSON的二進制數(shù)據(jù)BSON),這要以來,查詢很方便,其它的高級查詢,比如小于$lt,大于等于$gte,小于等于$lte, 在某個范圍$in, 不在某個范圍$nin,等等,都可以通過上面的方式查詢出來。

     現(xiàn)在通過java中的一些代碼展示通過java來操縱mongo 查詢。其中包含準確匹配查詢,高級查詢,在兩個時間范圍內(nèi)查詢,模糊查詢,分頁實現(xiàn)等查詢。

詳細見代碼。

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()方法得到查詢到的記錄數(shù)      result3.skip(10).limit(20);//分頁,skip():從第幾條開始,limit():限制返回的條數(shù)    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 這四個類,僅供參考。

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 蓬莱市| 建宁县| 英吉沙县| 曲靖市| 公安县| 商洛市| 三明市| 长垣县| 伊宁市| 乌拉特前旗| 临沂市| 灵宝市| 洪江市| 浠水县| 大余县| 瑞金市| 建平县| 河池市| 雷波县| 金寨县| 赞皇县| 左贡县| 彭泽县| 新晃| 福鼎市| 孟村| 双城市| 安陆市| 舒城县| 饶阳县| 上饶市| 孟津县| 吉木萨尔县| 漳浦县| 宣武区| 昆山市| 江达县| 辽源市| 望城县| 革吉县| 南靖县|