cari

Rumah  >  Soal Jawab  >  teks badan

mongodb - Mongo group分组后,怎么对分组后的结果进行从大到小排序,并取前5个

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实现吗?具体怎么写函数呢??或者能用什么方法实现????

怪我咯怪我咯2874 hari yang lalu1200

membalas semua(2)saya akan balas

  • 迷茫

    迷茫2017-04-24 09:16:07

    Sejujurnya, kumpulan mengikut mongo agak menyusahkan. Kenyataan mongo asli, pertanyaan agregat melalui saluran paip

    sqldb.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

    balas
    0
  • 高洛峰

    高洛峰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/

    balas
    0
  • Batalbalas