sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur hittar man radnumret för en rad i en sorterad MongoDB-samling för att beräkna dess percentil?

Få totalt antal med db.yourCollection.count()

Räkna sedan poster som har ett större antal med
db.yourCollection.find({$gte: value}).count()

Om totalt antal =1000, räkna för större eller lika =950 så har du 950/1000 - översta 95 %

Men om du använder din samling ofta i läsläge och sällsynt i skrivläge skulle jag föreslå att du gör en ny tillfällig insamling med MapReduce för att ha poster {_id:..., percent:...}



  1. Problem med att publicera/prenumerera på en Mongo-samlad fråga

  2. Mongo-aggregation och MongoError:undantag:BufBuilder försökte växa() till 134217728 byte, förbi gränsen på 64MB

  3. Java MongoDB får värde för underdokument

  4. Registreringen fungerar inte - Servern returnerar 404 Error Code