• MongoDB


    使用Nosql Manager for MongoDB 管理工具
    1.管理工具 模糊查询 
    模糊查询条件包含在 ‘/’之间
    2.java 连接MongoDB,条件查询


    2.1 连接MongoDB服务,并创建连接数据库对象。

    // 连接到 mongodb 服务
    MongoClient mongoClient = new MongoClient( "127.0.0.1" , 27017 );
    // 连接到数据库
    MongoDatabase mongoDatabase = mongoClient.getDatabase("articledb");  
    System.out.println("Connect to database successfully");
    MongoCollection<Document> collection = mongoDatabase.getCollection("article");
    MongoCollection<Document> collection_txt = mongoDatabase.getCollection("article_txt");

    2.2 添加查询条件

    //模糊查询条件
    Pattern pattern = Pattern.compile(".*atimo.cn.*", Pattern.CASE_INSENSITIVE);
    query.put("url", pattern);//对应表字段名
    MongoCursor<Document> cursor = collection.find(query).skip(0).limit(20).iterator();//添加查询条件分页条件

    2.3 遍历查询结果

    while (cursor.hasNext()) {
    Article act = new Article();
    //查询出的结果转换成jsonObject,然后进行封装或者直接返回给前端处理。我这是封装成对象了
    JSONObject jsonObject = JSONObject.parseObject( cursor.next().toJson().toString());
    System.out.println(jsonObject.getString("url"));
      act.setTitle(jsonObject.getString("title"));//
      act.setUrl(jsonObject.getString("url"));//
      unm++;
      System.out.println(unm+"--->"+act);
      //存入redis  
      jedis.lpush("sohu",JSON.toJSONString(act));
    }

    从Redis取出,遍历

    1         String sohu = jedis.rpop("sohu");
    2         JSONObject o = (JSONObject) JSONObject.parse(sohu);
    3         Article article = JSONObject.toJavaObject(o, Article.class);
    4         System.out.println(article.toString());

    从队列单个取出,转换为实体

     2.3 游标超时 解决办法 https://blog.csdn.net/u013066244/article/details/82658912

    3.使用管理工具写查询语句(统计数量)
    数据示例

    /* 1 */
    {
      "_id" : ObjectId("5badab52ad56c95900632572"),
      "artId" : "5ba36b831f535ce7e4814859",
      "content" : "一看那些细节就知道是245旗舰版",
      "comTime" : ISODate("2018-06-09T11:32:38Z"),
      "_class" : "com.guoxin.module.article.entity.Comment"
    }
    
    /* 2 */
    {
      "_id" : ObjectId("5badab52ad56c95900632573"),
      "artId" : "5ba36b831f535ce7e4814859",
      "content" : "他这个是旗舰版的吧(只有旗舰版的座椅才是这个样子的)。旗舰版的动力是180KW,不是小编你说的150KW",
      "comTime" : ISODate("2018-06-04T01:16:28Z"),
      "_class" : "com.guoxin.module.article.entity.Comment"
    }
    
    /* 3 */
    {
      "_id" : ObjectId("5badab52ad56c95900632574"),
      "artId" : "5ba36b831f535ce7e4814859",
      "content" : "银行职员往外跑吗?这么自由?",
      "comTime" : ISODate("2018-05-29T07:12:09Z"),
      "_class" : "com.guoxin.module.article.entity.Comment"
    }

    统计所有artId出现的次数,这里的 artId 字段是另外一个表的主键 id
     db.comment.aggregate([{$group : {_id : "$artId", count : {$sum : 1}}}]) 

    查询artId出现的次数统计,comment为数据库名,使用aggregate函数

    统计结果为

    { "_id" : "5bc91e3ead56c90b4680814b", "count" : 900 }
    { "_id" : "5bb37536ad56c91a9feac8b4", "count" : 1173 }
    { "_id" : "5bb36aaaad56c91a9feac8b1", "count" : 1089 }
    { "_id" : "5bb36aaaad56c91a9feac8b0", "count" : 1026 }
    { "_id" : "5bb3304ead56c91a9feac896", "count" : 589 }
    { "_id" : "5bb314e2ad56c91a9feac87e", "count" : 535 }
    { "_id" : "5bb3115ead56c91a9feac87c", "count" : 670 }
    { "_id" : "5bb3115ead56c91a9feac87b", "count" : 582 }
    { "_id" : "5bb30ddaad56c91a9feac87a", "count" : 544 }
    { "_id" : "5bb30ddaad56c91a9feac877", "count" : 587 }
    { "_id" : "5bb30ddaad56c91a9feac876", "count" : 719 }
    { "_id" : "5bb306d2ad56c91a9feac871", "count" : 586 }

    统计出每个Id在表中出现的次数。
    3.1 扩展 ,查询统计数量在500以上的数据
     db.comment.aggregate([{$group : {_id : "$artId", count : {$sum : 1}}},{$match:{count:{$gt:500}}}]) 
    加匹配条件即可。

    查询统计数量在200~500之间的
     db.comment.aggregate([{$group : {_id : "$artId", count : {$sum : 1}}},{$match:{count:{$gt:300}}},{$match:{count:{$gt:200}}}]) 
    注:artId为统计字段名

  • 相关阅读:
    [转载-声网]18个实时音视频开发中会用到开源项目
    linux shell命令之wc/split及特殊字符
    RTP推流及验证
    Ubuntu18.04提示wifi无法连接
    ubuntu上Android开发环境及依赖项
    HLS playlist典型示例
    ffmpeg-hls实现分析
    AOSP中的HLS协议解析
    使用ffmpeg搭建HLS直播系统
    流媒体之HLS——综述(二)
  • 原文地址:https://www.cnblogs.com/atimo/p/9945727.html
Copyright © 2020-2023  润新知