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

10 篇文章 0 订阅
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则没有找到这个需求的使用方法,希望知道的道友可以告知一下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值