您的位置:首页 > 数据库 > Mongodb

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

2018-12-20 10:29 1106 查看

是找出整个表 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

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: