JAva mongodb集約統計クエリー、2つのフィールドの比較

1716 ワード

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はこのニーズの使い方を見つけられませんでした.知ってほしい道友は教えてください.