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

想要用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;
  }
});

查不出结果,如何解决?

漂亮男人
漂亮男人

membalas semua(3)
小葫芦

Saya mencuba kaedah lain, tetapi masih tidak berjaya

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

Dengan cara ini, adakah terdapat sebarang kegunaan untuk pemulangan dalam muktamad?

小葫芦

2.4 telah dikeluarkan pada tahun 2010. Pelayan MongoDB yang dikeluarkan pada masa itu tidak lagi disokong secara rasmi, jadi perlu ditingkatkan.

滿天的星座

Untuk pengagregatan, versi 3.2 atau lebih tinggi disyorkan. Adalah disyorkan untuk menggunakan https://github.com/T-baby/Mon... untuk mengendalikan dan mengurus mongodb Sila rujuk https://t-baby.gitbooks.io/mo... . Bermula dalam sepuluh minit

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan