Meteor.js: Alle Dokumente finden und in umgekehrter Reihenfolge zurückgeben

8

Ich versuche, alle Dokumente in einer Sammlung zurückzugeben, um sie mit einem {{#each}} in meiner Vorlage zu verwenden. Mein Code sieht so aus:

return Answers.find({}, {sort: {$natural:-1}})

Aber die Dokumente werden in natürlicher Reihenfolge zurückgegeben (nicht umgekehrt). Weiß jemand warum? Ich habe den $ natürlichen Selektor aus der MongoDB-Dokumentation bekommen, also sehe ich nicht, was falsch ist.

    
Erlend V 25.11.2012, 18:33
quelle

4 Antworten

3

Kann nicht sagen, warum es nicht in umgekehrter Reihenfolge zurückkehrt.

Sie können jedoch ein Array in der Template-Hilfsmethode erstellen und die Umkehrung eines Arrays mithilfe von array.sort() oder array.reverse() functions zurückgeben.

Zum Beispiel: Sagen Sie, dass Answers collection wie folgt aussieht:

%Vor%

Und das Array zurückgegeben werden:

%Vor%

dann in Ihrem Vorlagenhelfer: - & gt;

%Vor%     
sohel khalifa 26.11.2012 10:01
quelle
1

Sortieren ist kein Parameter, sondern eine separate Funktion, die nach find () für das resultierende Objekt Cursor aufgerufen werden soll. Dies ist die Methode, auf die sich die MongoDB-Dokumentation bezieht, und arbeitet mit Treibern wie MongoJS:

%Vor%

Es scheint, dass Meteor die sort () -Funktion nicht zu ihrer Implementierung von Cursor hinzugefügt hat. Daher wäre eine alternative Lösung, nach _id Feld, das basierend auf dem Datum (und damit dem Anzeigenauftrag) generiert wird:

%Vor%     
DNJohnson 27.02.2013 23:49
quelle
1
___ qstnhdr ___ Meteor.js: Alle Dokumente finden und in umgekehrter Reihenfolge zurückgeben ___ answer13562443 ___

Kann nicht sagen, warum es nicht in umgekehrter Reihenfolge zurückkehrt.

Sie können jedoch ein Array in der Template-Hilfsmethode erstellen und die Umkehrung eines Arrays mithilfe von %code% oder %code% functions zurückgeben.

Zum Beispiel: Sagen Sie, dass %code% collection wie folgt aussieht:

%Vor%

Und das Array zurückgegeben werden:

%Vor%

dann in Ihrem Vorlagenhelfer: - & gt;

%Vor%     
___ answer27464714 ​​___

Als Workaround könnten Sie das tun:

%Vor%

Ich weiß, dass es besser wäre, das über den Sortierparameter zu tun, aber ich glaube nicht, dass es jetzt möglich ist.

    
___ tag123mongodbquery ___ Dieses Tag steht für Fragen zum Abfragen und Aktualisieren von MongoDB-Sammlungen, entweder über die "Mongo" -Shell oder mithilfe eines Programmiersprachentreibers. ___ answer15124849 ___

Sortieren ist kein Parameter, sondern eine separate Funktion, die nach find () für das resultierende Objekt Cursor aufgerufen werden soll. Dies ist die Methode, auf die sich die MongoDB-Dokumentation bezieht, und arbeitet mit Treibern wie MongoJS:

%Vor%

Es scheint, dass Meteor die sort () -Funktion nicht zu ihrer Implementierung von Cursor hinzugefügt hat. Daher wäre eine alternative Lösung, nach _id Feld, das basierend auf dem Datum (und damit dem Anzeigenauftrag) generiert wird:

%Vor%     
___ tag123meteor ___ Meteor ist eine modulare Plattform für die Entwicklung von Web- und mobilen Anwendungen in JavaScript auf Basis der NodeJS-Plattform. ___ answer31040221 ___

Ich denke, Sie könnten hier verwirrende Definitionen von "natürlicher Ordnung" sein. Auf der einen Seite gibt es eine natürliche Sortierreihenfolge für Buchstaben / Strings (A, B, C ...) und Zahlen (1,2,3 ...).

Aber im Fall von Mongo bezieht sich "natürlich" auf die Reihenfolge, in der die Daten auf die Festplatte geschrieben wurden. '{$ natural: 1}' gibt Dokumente in der Reihenfolge zurück, in der sie auf der Festplatte existieren ... 'und, so' {$ natural: -1} 'kehrt das um ( Ссылка ).

Ohne den Code, der die Daten schreibt, und einen Einblick in die Art, wie sie auf die Festplatte geschrieben wurde, können wir Ihre Hypothese, dass sie nicht richtig funktioniert, nicht testen.

    
___ qstntxt ___

Ich versuche, alle Dokumente in einer Sammlung zurückzugeben, um sie mit einem {{#each}} in meiner Vorlage zu verwenden. Mein Code sieht so aus:

%code%

Aber die Dokumente werden in natürlicher Reihenfolge zurückgegeben (nicht umgekehrt). Weiß jemand warum? Ich habe den $ natürlichen Selektor aus der MongoDB-Dokumentation bekommen, also sehe ich nicht, was falsch ist.

    
___
Justin McCandless 13.12.2014 23:23
quelle
0

Ich denke, Sie könnten hier verwirrende Definitionen von "natürlicher Ordnung" sein. Auf der einen Seite gibt es eine natürliche Sortierreihenfolge für Buchstaben / Strings (A, B, C ...) und Zahlen (1,2,3 ...).

Aber im Fall von Mongo bezieht sich "natürlich" auf die Reihenfolge, in der die Daten auf die Festplatte geschrieben wurden. '{$ natural: 1}' gibt Dokumente in der Reihenfolge zurück, in der sie auf der Festplatte existieren ... 'und, so' {$ natural: -1} 'kehrt das um ( Ссылка ).

Ohne den Code, der die Daten schreibt, und einen Einblick in die Art, wie sie auf die Festplatte geschrieben wurde, können wir Ihre Hypothese, dass sie nicht richtig funktioniert, nicht testen.

    
Rondo 25.06.2015 02:28
quelle

Tags und Links