cursor.forEach() är inte tillgängligt för Python, det är en JavaScript-funktion. Du måste ha en markör och iterera över den. Se PyMongo Tutorial:fråga efter mer än ett dokument , där du kan göra:
for document in myCollection.find():
print(document) # iterate the cursor
Tyvärr finns det brist på information här för att felsöka varför och vad "Dödad" är. Även om du vill matcha allt kan du bara ange:
cursor = db.myCollection.find({"name": {$regex: /.*/}})
Med tanke på det fältet name
innehåller strängvärden. Även om du använder $exists
för att kontrollera om fältet name
existerar skulle vara att föredra än att använda regex.
Medan användningen av $exists
operatorn i ditt exempel ovan är felaktig. Du saknar en s
i $exists
. Återigen, tyvärr vet vi inte mycket information om vad "inte fungerade" betydde för att hjälpa till att felsöka ytterligare.
Om du skriver det här skriptet för Python-övningen skulle jag rekommendera att du granskar:
Du kan också anmäla dig till en gratis onlinekurs på MongoDB University för M101P:MongoDB för Python-utvecklare .
Men om du bara försöker utföra din uppgift att exportera CSV från en samling. Som ett alternativ kan du bara använda MongoDB:s mongoexport . Som har stöd för:
- Exportera specifika fält via --fält "namn, adress"
- Exportera i CSV via --typ "csv"
- Exportera specifika värden med fråga via --query " ..."
Se mongoexportanvändning för mer information.