group-by - MongoDB对对聚合查询结果进行筛选
漂亮男人
漂亮男人 2017-04-25 09:04:30
0
3
651

想要用java做分组查询,貌似2.4版的java驱动包不支持db.collection.aggregate语法,所以被迫改用db.collection.group()方法。
需求:要用Mongo实现该与SQL的相同作用:
select number from user group by number having count(*) = 1

使用aggregate可以这么实现:

db.user.aggregate(
 {$group:{_id:"$number",total:{$sum:1}}},
 {$match:{total:1}}
);

现在改用group方法:

db.user.group({
  key : {number:1}, 
  cond : {count:1}, 
  initial : {count: 0}, 
  reduce : function Reduce(doc, out) {
   out.count +=1;
  }, 
  finalize : function Finalize(out) {
   return out;
  }
});

查不出结果,如何解决?

漂亮男人
漂亮男人

全員に返信(3)
小葫芦

別の方法を試してみましたが、それでもうまくいきませんでした

リーリー

そういえばファイナライズのリターンって何か使い道あるの?

いいねを押す +0
小葫芦

2.4は2010年にリリースされました。当時リリースされたMongoDBサーバーは正式にサポートされなくなったため、アップグレードする必要があります。

いいねを押す +0
滿天的星座

集計にはバージョン 3.2 以降を推奨します。 mongodbの運用・管理には https://github.com/T-baby/Mon... を使用することを推奨します。 https://t-baby.gitbooks.io/mo... を参照してください。 10分以内に始めましょう

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート