cursor.forEach() is niet beschikbaar voor Python, het is een JavaScript-functie. Je zou een cursor moeten krijgen en eroverheen moeten gaan. Zie PyMongo Tutorial:querying for more dan één document , waar u kunt doen:
for document in myCollection.find():
print(document) # iterate the cursor
Helaas is er hier een gebrek aan informatie om te debuggen over waarom en wat 'Killed' is. Hoewel als je alles wilt matchen, je gewoon kunt zeggen:
cursor = db.myCollection.find({"name": {$regex: /.*/}})
Gezien dat veld name
bevat tekenreekswaarden. Hoewel het gebruik van $exists
om te controleren of veld name
bestaat zou de voorkeur hebben boven het gebruik van regex.
Hoewel het gebruik van $bestaat
operator in uw voorbeeld hierboven is onjuist. Je mist een s
in $exists
. Nogmaals, helaas weten we niet veel informatie over wat 'niet werkte' betekende om verder te debuggen.
Als je dit script schrijft voor Python-oefeningen, raad ik je aan om het volgende te lezen:
U kunt zich ook inschrijven voor een gratis online cursus bij MongoDB University voor M101P:MongoDB voor Python-ontwikkelaars .
Als u echter alleen uw taak probeert te volbrengen om CSV uit een verzameling te exporteren. Als alternatief kunt u gewoon MongoDB's mongoexport gebruiken . Welke ondersteuning heeft voor:
- Specifieke velden exporteren via --fields "name, adres"
- Exporteren in CSV via --type "csv"
- Exporteren van specifieke waarden met zoekopdracht via --query " ..."
Zie mongoexport-gebruik voor meer informatie.