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

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

2016-12-22 17:49 543 查看
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则没有找到这个需求的使用方法,希望知道的道友可以告知一下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: