MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Pymongo :itérer sur tous les documents de la collection

cursor.forEach() n'est pas disponible pour Python, c'est une fonction JavaScript. Vous auriez à obtenir un curseur et itérer dessus. Voir tutoriel PyMongo :interroger pour plus plus d'un document , où vous pouvez faire :

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

Malheureusement, il y a un manque d'informations ici pour déboguer pourquoi et ce qu'est "Tué". Cependant, si vous souhaitez tout assortir, vous pouvez simplement indiquer :

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

Étant donné ce champ name contient des valeurs de chaîne. Bien que l'utilisation de $exists pour vérifier si le champ name existe serait préférable que d'utiliser regex.

Alors que l'utilisation de $exists L'opérateur dans votre exemple ci-dessus est incorrect. Il vous manque un s dans $exists . Encore une fois, malheureusement, nous ne connaissons pas beaucoup d'informations sur ce que "n'a pas fonctionné" signifiait pour aider à déboguer davantage.

Si vous écrivez ce script pour l'exercice Python, je vous recommande de réviser :

Vous pouvez également vous inscrire à un cours en ligne gratuit à MongoDB University pour M101P :MongoDB pour les développeurs Python .

Cependant, si vous essayez simplement d'accomplir votre tâche d'exportation CSV à partir d'une collection. Comme alternative, vous pouvez simplement utiliser mongoexport de MongoDB . Qui a le support pour :

Voir utilisation de mongoexport pour plus d'informations.