Ich kann die richtige Syntax nicht herausfinden, es mit find() zu tun. ForEach()
cursor.forEach() ist für Python nicht verfügbar, es ist eine JavaScript-Funktion. Sie müssten einen Cursor bekommen und darüber iterieren. Siehe PyMongo Tutorial: querying for more than one document, wo Sie tun können:
for document in myCollection.find():
print(document) # iterate the cursor
wo REGEX würde alles passen - und es führte zu "getötet".
Leider fehlen hier Informationen, um herauszufinden, warum und was 'Killed' ist. Obwohl, wenn Sie möchten, dass alles passen, können Sie einfach Zustand:
cursor = db.myCollection.find({"name": {$regex: /.*/}})
Da Feld name
String-Werte enthält. Wenn Sie $exists
verwenden, um zu überprüfen, ob das Feld name
vorhanden ist, wäre dies besser als die Verwendung von Regex.
Während die Verwendung von $exists Operator in Ihrem Beispiel oben ist falsch. Sie vermissen eine s
in $exists
. Wiederum wissen wir leider nicht viel darüber, was "nicht funktioniert" bedeutet, um weiter zu debuggen.
Wenn Sie dieses Skript für Python Übung schreiben, würde ich eine Bewertung empfehlen:
Sie auch in einem kostenlosen Online-Kurs bei MongoDB University einschreiben könnten für M101P: MongoDB for Python Developers.
Wenn Sie jedoch nur versuchen, Ihre Aufgabe des Exportierens von CSV aus einer Sammlung zu erfüllen. Als Alternative könnten Sie einfach MongoDB mongoexport verwenden.Welche hat die Unterstützung für:
mongoexport usage für weitere Informationen.
was ist Ihre tatsächliche Abfrage oder Ihr gewünschtes Ergebnis? Bitte erläutern Sie ein bisschen besser. – sergiuz
Ich bin mir nicht sicher, ob Sie das schon versucht haben oder nicht, versuchen Sie es mit einem Job zur Kartenreduzierung, um Ihre Arbeit zu erledigen. Angesichts des riesigen Datensatzes scheint es eine bessere Option zu sein. Es ist nur ein Vorschlag. – user1211