MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie finde ich die Top-5-Werte in Mongodb? und sollte nicht denselben Wert enthalten

Nun, Sie können die Aggregationspipeline verwenden, um Daten in dem gewünschten Format zu gruppieren und zu projizieren.

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

Dadurch wird das folgende Ergebnis gedruckt, vorausgesetzt, die Eingabe ist das, was Sie in Ihrer Frage erwähnt haben.

{ 
    "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"
}

Weitere Informationen zum MongoDB-Aggregationsframework finden Sie unter https://docs.mongodb.org/manual/aggregation /