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

Wie finde ich die Zeilennummer einer Zeile in einer sortierten MongoDB-Sammlung, um ihr Perzentil zu berechnen?

Holen Sie sich die Gesamtzahl mit db.yourCollection.count()

Zählen Sie dann Datensätze, die eine größere Anzahl haben, mit
db.yourCollection.find({$gte: value}).count()

Wenn die Gesamtanzahl =1000 ist, zählen Sie für größer oder gleich =950, dann haben Sie 950/1000 - Top 95 %

Aber wenn Sie Ihre Sammlung oft im Lesemodus und selten im Schreibmodus verwenden, würde ich vorschlagen, eine neue temporäre Sammlung mit MapReduce zu erstellen, um Datensätze {_id:..., percent:...} zu haben