sql >> Databasteknik >  >> NoSQL >> MongoDB

Pymongo:iterera över alla dokument i samlingen

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:

Se mongoexportanvändning för mer information.



  1. Nodejs Mongoose återger två modeller från kollektioner

  2. PyMongo $inc har problem

  3. Hur får jag _id för det nyligen infogade dokumentet efter en infogning med mongo csharp?

  4. Spring repository autocast-enheter med olika klasstyper