mongodb, pymongo, Aggregat gibt seltsame Ausgabe (etwas über den Cursor)

8

Ich versuche eine Liste von Personen mit den meisten Einträgen in meiner Datenbank zu erhalten.

%Vor%

Ein Eintrag sieht so aus:

%Vor%

Ich weiß, dass created.user existiert und anderweitig zugänglich ist.

Immer noch ist der Output, den ich bekomme:

<pymongo.command_cursor.CommandCursor object at 0x02ADD6B0>

Sollte ich nicht eine sortierte Liste bekommen?

    
hmmmbob 19.05.2015, 18:08
quelle

1 Antwort

17

Das Ergebnis einer Aggregationsabfrage ist wie bei einer normalen find -Abfrage ein Cursor. Im Fall von pymongo ist CommandCursor iterierbar, so dass Sie in der Lage sind, Folgendes zu tun:

%Vor%

Hinweis: als arun bemerkte , in beiden Fällen, dh nachdem Sie eine Liste außerhalb des Cursors erstellt oder in der for-Schleife iteriert haben, können Sie nicht mehr über die iterieren Mauszeiger. In diesem Fall wird die erste Option besser, wenn Sie sie in Zukunft verwenden möchten, da Sie die Liste so oft verwenden können, wie Sie möchten, weil sie bereits im Speicher vorhanden ist.
Der Grund dafür, dass es nicht wiederholt werden kann, ist, dass der Cursor tatsächlich auf dem Server ist und die Daten Stück für Stück sendet, und nachdem er Ihnen alle Daten gesendet hat (oder der Server endet), wird der Cursor zerstört / p>     

bagrat 19.05.2015, 18:41
quelle