sql >> Databáze >  >> NoSQL >> MongoDB

mongodb, pymongo, agregát dává podivný výstup (něco o kurzoru)

Výsledkem agregačního dotazu je kurzor, jako u běžného find dotaz. V případě pymongo CommandCursor je iterovatelný, takže můžete provést kteroukoli z následujících akcí:

cursor = db.points.aggregate(...)

# Option 1
print(list(cursor))

# Option 2
for document in cursor:
    print(document)

Poznámka: jak si všiml , v obou případech, tj. poté, co vytvoříte seznam z kurzoru nebo iterujete ve smyčce for, nebudete moci kurzor opakovat. V takovém případě se první možnost stane lepší, pokud ji budete chtít použít v budoucnu, protože získaný seznam můžete používat, jak chcete, protože je již v paměti.
Důvod, proč nemůžete zopakuji, že kurzor je ve skutečnosti na serveru a posílá data kousek po bloku a poté, co vám odešle všechna data (nebo se server ukončí), kurzor se zničí.




  1. Přesnost příkazu redis dbsize

  2. Vlastnost objektu MongoDB $existuje ve vnořeném poli

  3. Jak nasadit MongoDB na Heroku

  4. Jak získám přístup k MongoDB Meteoru z jiného klienta, když je Meteor spuštěn?