我使用pymongo来查询一个区域中的所有项目(实际上它是在地图上查询一个区域中的所有场馆)。我之前使用db.command(SON())在一个球形区域中进行搜索,它可以返回一个字典,在字典中有一个名为results的关键字,其中包含场馆。现在我需要在一个正方形区域内进行搜索,系统建议我使用db.places.find,但是,这将返回一个pymongo.cursor.Cursor类,而我不知道如何从中提取地点结果。
有没有人知道我是应该将光标转换成字典并提取结果,还是应该使用另一种方法来查询正方形区域中的项目?顺便说一句,db是pymongo.database.Database类
代码为:
>>> 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)我有ll_lng、ll_lat、ur_lng和ur_lat的值,使用这些值,但它不会从这些代码中打印任何内容
发布于 2015-08-28 17:56:52
简单
import pymongo
conn = pymongo.MongoClient()
db = conn.test #test is my database
col = db.spam #Here spam is my collection
array = list(col.find())
print(array)这就对了
发布于 2015-04-27 16:44:46
我建议创建一个列表,并将字典附加到其中。
x = []
cur = db.dbname.find()
for i in cur:
x.append(i)
print(x)现在x是一个字典列表,你可以用通常的python方式来操作它。
发布于 2015-03-11 00:36:02
MongoDB find方法不返回单个结果,而是返回Cursor形式的结果列表。后者是一个迭代器,所以您可以使用for循环遍历它。
对于您的情况,只需使用findOne方法而不是find。这将返回单个文档作为字典。
https://stackoverflow.com/questions/28968660
复制相似问题