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

Pymongo:Über alle Dokumente in der Sammlung iterieren

cursor.forEach() ist für Python nicht verfügbar, es ist eine JavaScript-Funktion. Sie müssten einen Cursor bekommen und darüber iterieren. Siehe PyMongo Tutorial:Abfragen nach mehr als ein Dokument , wo Sie tun können:

for document in myCollection.find():
    print(document) # iterate the cursor

Leider fehlen hier Informationen zum Debuggen, warum und was „Killed“ ist. Wenn Sie jedoch alles abgleichen möchten, können Sie einfach Folgendes angeben:

cursor = db.myCollection.find({"name": {$regex: /.*/}}) 

Angesichts dieses Feldes name enthält Zeichenfolgenwerte. Obwohl $exists verwendet wird um zu prüfen, ob das Feld name existiert, wäre der Verwendung von Regex vorzuziehen.

Während die Verwendung von $exists Operator in Ihrem obigen Beispiel ist falsch. Ihnen fehlt ein s in $exists . Auch hier kennen wir leider nicht viele Informationen darüber, was „nicht funktioniert“ bedeutet, um beim weiteren Debuggen zu helfen.

Wenn Sie dieses Skript für eine Python-Übung schreiben, würde ich empfehlen, Folgendes zu lesen:

Sie können sich auch für einen kostenlosen Online-Kurs bei MongoDB University anmelden für M101P:MongoDB für Python-Entwickler .

Wenn Sie jedoch nur versuchen, Ihre Aufgabe zu erfüllen, CSV aus einer Sammlung zu exportieren. Als Alternative könnten Sie einfach mongoexport von MongoDB verwenden . Welches hat die Unterstützung für:

Siehe Verwendung von Mongoexport für mehr Informationen.