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