Dies wird von einem Beispiel stammt die bei how to sort array inside collection record in mongoDBSortierung in MongoDB Schal mit einem kundenspezifischen Auftrag
> alit=[{a:16},{a:15},{a:14},{a:13},{a:12},{a:11},{a:10},{a:9},{a:8},{a:7},{a:6},{a:5},{a:4},{a:3},{a:2},{a:1},{a:0}]
> alit.sort(function(a,b) {return a.a>b.a })
[ { "a":8 }, { "a":0 }, { "a":7 }, { "a":14 }, { "a":12 }, { "a":11 }, { "a":10 }, { "a":9 }, { "a":1 }, { "a":13 }, { "a":6 }, { "a":5 }, { "a":4 }, { "a":3 }, { "a":2 }, { "a":15 }, { "a":16 } ]
>
Hinweis versehen war, dass, wenn ich diese gleiche Zeile mehr Male ausführen es progressiv mehr und mehr sortiert wird, ist es, als ob Dies führte ein Quicksort aber mit nur zwei Ebenen der Rekursion jedes Mal. Kann mir jemand erklären, was ich falsch mache und wie man eine benutzerdefinierte Reihenfolge definiert, die in einem Rutsch funktioniert?
Wovon redest du? Die Shell ist nur eine einfache JavaScript-REPL und Sie sortieren nur ein einfaches JavaScript-Array mit einem regulären JavaScript ['Array.sort()'] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) -Methode. Funktioniert genau so, wie es sollte und sicherlich nicht, wie Sie behaupten. –
Ich bin in der Lage, die obige Behauptung zu überprüfen. Ich habe deine Aussagen in meine Mongo-Shell kopiert und die Zahlen ein wenig gemischt. Was ich als Ergebnis der Sortierung erhalte, ist das erwartete sortierte Array und nicht das, was du beschreibst. Für was es wert ist, habe ich v3.4.2 verwendet. – ThisClark
Ich benutze v3.0.10 und kopiere buchstäblich meine Zeilen vom Client eingefügt. Ich beanspruche nichts, Neil. –