java mongodb聚合统计查询,比较两个字段

来源:互联网 发布:mac ps2017 编辑:程序博客网 时间:2024/05/05 02:14
DBObject group = (DBObject) JSON.parse("{'$group': {'_id': {'qzc':'$qzc','qzt':'$qzt'},'z': {'$sum':1}}}");DBObject project = (DBObject) JSON.parse("{'$project': {'z':1,'difference': { '$eq': [ '$l', '$qzt' ]}}}");DBObject match = (DBObject) JSON.parse("{'$match': {'difference':true,'l':{'$ne':0}}}");DBObject sort = (DBObject) JSON.parse("{'$sort': {'z':-1}}");AggregationOutput output = mongoTemplate.getCollection("events2").aggregate(group, project, match, sort);

以上代码用的是spring-data-mongo-1.4.1.RELEASE.jar,其他版本写法也差不多

下面是在mongodb控制台输入

db.events2.aggregate(  [    {        "$group":{            "_id":{                "qzc":"$qzc",                "qzt":"$qzt"            },            "z":{                "$sum":1            }        }    },    {        "$project":{            "z":1,            "difference":{                "$eq":[                    "$l",                    "$qzt"                ]            }        }    },    {        "$match":{            "difference":true,            "l":{                "$ne":0            }        }    },    {        "$sort":{            "z":-1        }    }  ]);

暂时就找到拼接json查询的,而data自带的Aggregation则没有找到这个需求的使用方法,希望知道的道友可以告知一下

0 0