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:
- Export bestimmter Felder über --fields "name, Adresse"
- Exportieren in CSV über – geben Sie "csv" ein
- Exportieren bestimmter Werte mit Abfrage über --query " ..."
Siehe Verwendung von Mongoexport für mehr Informationen.