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

Pymongo:itera su tutti i documenti nella raccolta

cursor.forEach() non è disponibile per Python, è una funzione JavaScript. Dovresti ottenere un cursore e scorrere su di esso. Vedi PyMongo Tutorial:query per altro di un documento , dove puoi fare :

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

Sfortunatamente qui mancano informazioni per eseguire il debug sul perché e cosa sia "Killed". Sebbene se desideri abbinare tutto, puoi semplicemente affermare:

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

Dato quel campo name contiene valori di stringa. Sebbene utilizzi $exists per verificare se il campo name esiste sarebbe preferibile rispetto all'utilizzo di regex.

Sebbene l'uso di $esiste operatore nel tuo esempio sopra non è corretto. Ti manca un s in $exists . Ancora una volta, sfortunatamente non conosciamo molte informazioni su cosa significasse "non funzionava" per aiutare ulteriormente il debug.

Se stai scrivendo questo script per l'esercizio Python, ti consiglio di rivedere:

Puoi anche iscriverti a un corso online gratuito presso MongoDB University per M101P:MongoDB per sviluppatori Python .

Tuttavia, se stai solo cercando di portare a termine il tuo compito di esportare CSV da una raccolta. In alternativa, puoi semplicemente utilizzare mongoexport di MongoDB . Che ha il supporto per :

Vedi utilizzo di mongoexport per maggiori informazioni.