zoukankan      html  css  js  c++  java
  • MongoDB比较两列大小 使用$subtract函数

    是找出整个表 a大于b的总数量,要怎么操作数据库呢,那就要用到$subtract函数

    MongoDB比较两列大小 使用$subtract函数,

     // MongoDB 比较两列大小求出  啊>b 的数值
    
      db.seoProduceAnalyse.aggregate([
        {
          "$project":{
                "val":{"$subtract":["$a","$b"]}    // a与 b两个值减 得到值 val
           }  
        },
          {
            "$match":{
                  "val":{"$lt":1}                      // 条件 where 是   val《1
             }
          },
          {
            "$group":{
                      "_id":1,                         // id
                  "count":{"$sum":1}                 // 展示 count  值为 总数
            }
          }
     ])

    结果:

    java 中代码

    //         $group
            DBObject group = new BasicDBObject();
            DBObject q = new BasicDBObject();
            DBObject l = new BasicDBObject();
            DBObject c = new BasicDBObject();
            c.put("$sum" ,1);
            q.put("_id" ,1);
            q.put("count",c );
            group.put("$group", q);
            
            // $project
            DBObject project = new BasicDBObject();
            DBObject p = new BasicDBObject();
            DBObject sb = new BasicDBObject();
            BasicDBList list = new BasicDBList();
            list.add("$a");
            list.add("$b");
            sb.put("$subtract",list);         // 使用$subtarct函数
            p.put("val", sb);
            project.put("$project", p);
            
            // $match
            DBObject match = new BasicDBObject();
            DBObject qm = new BasicDBObject();
            DBObject qmc = new BasicDBObject();
            qmc.put("$lt", Integer.valueOf("0"));
            qm.put("val", qmc);
            match.put("$match",qm);
            AggregationOutput output = collection.aggregate(project,match,group);  // 顺序必须是 project match group
  • 相关阅读:
    python文件操作总结
    hidoCoder #1514 偶像的条件
    2017浙江省赛大学生程序设计竞赛 C题 What Kind of Friends Are You?
    51nod 1503 猪和回文串(动态规划)
    整数划分(若干不同),时间复杂度O(n*sqrt(n))
    Jiu Yuan Wants to Eat
    牛牛数括号
    P3254 圆桌问题
    方格取数(1)
    Taeyeon的困惑
  • 原文地址:https://www.cnblogs.com/lemon-flm/p/10147834.html
Copyright © 2011-2022 走看看