cursor.forEach() nie jest dostępna dla Pythona, jest to funkcja JavaScript. Musiałbyś umieścić kursor i iterować po nim. Zobacz Samouczek PyMongo:zapytanie o więcej niż jeden dokument , gdzie możesz zrobić :
for document in myCollection.find():
print(document) # iterate the cursor
Niestety nie ma tutaj informacji do debugowania, dlaczego i czym jest 'Killed'. Chociaż jeśli chcesz wszystko dopasować, możesz po prostu stwierdzić:
cursor = db.myCollection.find({"name": {$regex: /.*/}})
Biorąc pod uwagę to pole name
zawiera wartości ciągu. Chociaż używam $exists
aby sprawdzić, czy pole name
istnieje byłoby lepsze niż używanie wyrażenia regularnego.
Chociaż użycie $exists
operator w powyższym przykładzie jest niepoprawny. Brakuje Ci s
w $exists
. Ponownie, niestety, nie znamy zbyt wielu informacji na temat tego, co oznaczało, że „nie zadziałało”, aby pomóc w dalszym debugowaniu.
Jeśli piszesz ten skrypt do ćwiczenia w Pythonie, polecam przejrzeć:
Możesz także zapisać się na bezpłatny kurs online na Uniwersytecie MongoDB dla M101P:MongoDB dla programistów Pythona .
Jeśli jednak próbujesz tylko wykonać zadanie eksportowania pliku CSV z kolekcji. Jako alternatywę możesz po prostu użyć mongoexport MongoDB . Który ma wsparcie dla:
- Eksportowanie określonych pól za pomocą --fields "name, adres”
- Eksportowanie w formacie CSV za pomocą --type "csv"
- Eksportowanie określonych wartości za pomocą zapytania za pomocą --query " ..."
Zobacz korzystanie z mongoexport po więcej informacji.