sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur hittar man topp 5 värden i mongodb? och bör inte innehålla samma värde

Tja, du kan använda aggregeringspipeline för att gruppera och projektera data i det format du vill se.

db.col.aggregate([
{$group:{_id:"$Appname", softcount:{$max:"$softcount"}}},
{$project:{_id:0, "Appname":"$_id", softcount:1}},
{$sort:{softcount:-1}},
{$limit: 5}
])

detta kommer att skriva ut följande resultat, förutsatt att input är vad du nämnde i din fråga.

{ 
    "softcount" : 10.0, 
    "Appname" : "ktr"
}
{ 
    "softcount" : 8.0, 
    "Appname" : "rsr"
}
{ 
    "softcount" : 6.0, 
    "Appname" : "ssl"
}
{ 
    "softcount" : 5.0, 
    "Appname" : "ppr"
}
{ 
    "softcount" : 4.0, 
    "Appname" : "crs"
}

Du kan lära dig mer om MongoDB-aggregationsramverket på https://docs.mongodb.org/manual/aggregation /



  1. MongoDB aggregeringsramverk $subtrahera

  2. Hur man konverterar datumformat i mongodb

  3. BadYieldError vid användning av find() Motor [MongoDB + Tornado]

  4. Hur kan jag använda Python för att omvandla MongoDB:s bsondump till JSON?