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
原文地址:https://www.cnblogs.com/lemon-flm/p/10147834.html