sql >> Database teknologi >  >> NoSQL >> MongoDB

Pymongo:gentag over alle dokumenter i samlingen

cursor.forEach() er ikke tilgængelig for Python, det er en JavaScript-funktion. Du bliver nødt til at få en markør og gentage den. Se PyMongo Tutorial:forespørgsel efter mere end ét dokument , hvor du kan gøre:

for document in myCollection.find():
    print(document) # iterate the cursor

Desværre er der mangel på information her til at fejlsøge om hvorfor og hvad 'Killed' er. Selvom du gerne vil matche alt, kan du blot angive:

cursor = db.myCollection.find({"name": {$regex: /.*/}}) 

Givet det felt name indeholder strengværdier. Selvom du bruger $exists for at kontrollere, om feltet name eksisterer ville være at foretrække frem for at bruge regex.

Mens brugen af ​​$exists operatoren i dit eksempel ovenfor er forkert. Du mangler en s i $exists . Igen, vi ved desværre ikke meget information om, hvad 'virkede' betød for at hjælpe med at fejlfinde yderligere.

Hvis du skriver dette script til Python-øvelsen, vil jeg anbefale at gennemgå:

Du kan også tilmelde dig et gratis online kursus på MongoDB University for M101P:MongoDB for Python-udviklere .

Men hvis du bare prøver at udføre din opgave med at eksportere CSV fra en samling. Som et alternativ kan du bare bruge MongoDB's mongoexport . Som har støtte til:

Se mongoexport-brug for mere information.



  1. Mongoose upsert duplikatnøglefejl

  2. Konverter string array til objekt Id array

  3. Redis / Node.js - 2 klienter (1 pub/sub) forårsager problemer med skrivninger

  4. Mongoose - ved hjælp af Populate på en række ObjectId