Rumah > Soal Jawab > teks badan
BasicDBObject key = new BasicDBObject("ip",true);
BasicDBObject initial = new BasicDBObject("count",0);
BasicDBObject cond = 。。。。
String reduce = "function(obj,prev){prev.count+=1}";
String finalize =?????
col.group(key,initial,cond,reduce,finalize);
最后的结果,我想要count
数量从大到小排列,并且只取前五个,能用finalize
实现吗?具体怎么写函数呢??或者能用什么方法实现????
迷茫2017-04-24 09:16:07
Sejujurnya, kumpulan mengikut mongo agak menyusahkan. Kenyataan mongo asli, pertanyaan agregat melalui saluran paip
sql
db.term.aggregate([ {$match:{library_id:3607}}, {$limit:5}, {$group:{_id:"$version", count: {$sum:1}}}, {$sort:{count:-1}} ])
istilah: nama koleksi yang ingin anda tanyakan
$match: syarat sepadan, pilihan
$limit: bilangan keputusan, Pilihan
$kumpulan: peraturan pengagregatan
$sort: mengisih hasil pertanyaan, -1 bermaksud tertib menurun
http://docs.mongoing.com/manual-zh/reference/operator/aggregation.html#aggregation-pipeline-operator-reference
高洛峰2017-04-24 09:16:07
Gunakan agregat untuk pengiraan dan pengisihan kumpulan.
Contoh mudah
db.collection.aggregate([ {$group:{_id:"$source",total:{$sum:"$changeValue"}}},{$limit:1}])
Lihat http://docs.mongodb.org/manual/reference/command/aggregate/