2016-06-02 12 views
0

Ich habe eine Mongo-Datenbank in cmd ausgeführt. Es gibt eine Sammlung namens usercollection. Und es gibt auch einige Dokumente, die ich durch die Eingabe in Mongo Shell bekommen:mongodb absteigend Sortierung nach einem numerischen Feld wird zufällig sortiert (node.js)

db.usercollection.find().sort({score: -1}).pretty() 

Ausgang:

{                 
     "_id" : ObjectId("57501b2d7ef17cd8c1bd63bc"),    
     "name" : "QWERTY",           
     "score" : "100",           
     "link" : "http://qwerty.com"        
}                 
{                 
     "_id" : ObjectId("5750199819433f80da88c847"),    
     "name" : "Adam Sandler",         
     "score" : "222",           
     "link" : "http://sandler.com"        
}                 
{                 
     "_id" : ObjectId("57501af57ef17cd8c1bd63bb"),    
     "name" : "gfhfghfghguy",          
     "score" : "5",            
     "link" : "http://dsad.com"         
}                 
{                 
     "_id" : ObjectId("57501bb47ef17cd8c1bd63bd"),    
     "name" : "Test name",          
     "score" : "50",           
     "link" : "http://fdsfds.cpm"        
}                 
{                 
     "_id" : ObjectId("574f4a9dab868fdc896d11b4"),    
     "name" : "Rich Man",          
     "score" : "500",           
     "link" : "http://jikl.me"        
}                 
{                 
     "_id" : ObjectId("574f50f1fbd256888ffa248d"),    
     "name" : "lfgfgff",         
     "score" : "9",            
     "link" : "http://oh.com"         
}                 
{                 
     "_id" : ObjectId("574f5324fbd256888ffa248e"),    
     "name" : "test name",          
     "score" : "9",            
     "link" : "http://dsad.com"         
} 

Das Problem ist, dass ich diese Dokumente von einem mit dem höchsten zu sortieren bin versucht, Tor eines mit dem niedrigsten Punktzahl und es ist Ausgang völlig zufällig ist (

ich die Anzeige, dass Dokumente auf der Website node.js und das Ergebnis ist das gleiche wie in der Konsole.

+0

Das Problem ist, dass Ihre Werte sind Zeichenfolgen, keine Zahlen. Es wäre am besten, es als Nummer zu speichern. – JohnnyHK

+0

Ich bin neu in diesem Zeug, können Sie mir sagen, wie man es Zahlen macht? –

+0

Sie können mit einem Ansatz wie http://stackoverflow.com/a/9746195/1259510 – JohnnyHK

Antwort

0

Versuchen Sie mit:

db.usercollection.find().sort({score: 'desc'}).pretty() 
+0

Fehler:.. "waitedMS": NumberLong (0), "ok": 0, "errmsg": "falsche Sortierung", "code": 2 –

Verwandte Themen