Sto usando pymongo per richiedere tutti gli elementi in una regione (in realtà si tratta di interrogare tutte le sedi in una regione su una mappa). Ho usato db.command(SON())
prima di cercare in una regione sferica, che può restituirmi un dizionario e nel dizionario c'è una chiave chiamata results
che contiene le sedi. Ora ho bisogno di cercare in un'area quadrata e mi viene suggerito di utilizzare db.places.find
, tuttavia, questo mi restituisce una classe pymongo.cursor.Cursor
e non ho idea di come estrarre i risultati della sede da esso.Come convertire un pymongo.cursor.Cursor in un dict?
Qualcuno sa se dovrei convertire il cursore in un dict ed estrarre i risultati oppure utilizzare un altro metodo per eseguire una ricerca di elementi in un'area quadrata? BTW, db è classe pymongo.database.Database
I codici sono:
>>> import pymongo
>>> db = pymongo.MongoClient(host).PSRC
>>> resp = db.places.find({"loc": {"$within": {"$box": [[ll_lng,ll_lat], [ur_lng,ur_lat]]}}})
>>> for doc in resp:
>>> print(doc)
ho valori di ll_lng, ll_lat, ur_lng e ur_lat, utilizzare questi valori, ma la stampa non viene da questo codici
è possibile trattare il cursore pymongo che viene restituito allo stesso modo che ci si trattano un elenco di dizionari. – dursk
@dursk Tuttavia, è possibile scorrere il cursore solo una volta prima che il cursore venga distrutto, quindi è necessario assicurarsi di salvare ogni risultato in un elenco di dict. – Rohmer