想要用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;
}
});
查不出结果,如何解决?
Saya mencuba kaedah lain, tetapi masih tidak berjaya
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