cursor.forEach() není k dispozici pro Python, je to funkce JavaScriptu. Museli byste získat kurzor a iterovat přes něj. Více viz Výukový program PyMongo:dotazování než jeden dokument , kde můžete:
for document in myCollection.find():
print(document) # iterate the cursor
Bohužel je zde nedostatek informací k ladění proč a co je 'Killed'. I když pokud byste chtěli vše sladit, stačí uvést:
cursor = db.myCollection.find({"name": {$regex: /.*/}})
Vzhledem k tomu poli name
obsahuje řetězcové hodnoty. I když pomocí $exists
zkontrolujte, zda pole name
existuje by bylo vhodnější než použití regulárního výrazu.
Zatímco použití $exists
operátor ve vašem příkladu výše je nesprávný. Chybí vám s
v $exists
. Opět bohužel nevíme mnoho informací o tom, co 'nefungovalo' znamenalo pomoci s dalším laděním.
Pokud píšete tento skript pro cvičení Python, doporučil bych si přečíst:
Můžete se také přihlásit do bezplatného online kurzu na MongoDB University pro M101P:MongoDB pro vývojáře Pythonu .
Pokud se však jen pokoušíte splnit svůj úkol exportovat CSV z kolekce. Jako alternativu můžete jednoduše použít mongoexport společnosti MongoDB . Který má podporu pro:
- Export konkrétních polí prostřednictvím --fields "name, adresu"
- Export ve formátu CSV prostřednictvím -- zadejte „csv“
- Export konkrétních hodnot pomocí dotazu prostřednictvím --query " ..."
Viz použití mongoexportu Pro více informací.