首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将pymongo.cursor.Cursor转换为dict?

如何将pymongo.cursor.Cursor转换为dict?
EN

Stack Overflow用户
提问于 2015-03-11 00:10:55
回答 4查看 132.2K关注 0票数 80

我使用pymongo来查询一个区域中的所有项目(实际上它是在地图上查询一个区域中的所有场馆)。我之前使用db.command(SON())在一个球形区域中进行搜索,它可以返回一个字典,在字典中有一个名为results的关键字,其中包含场馆。现在我需要在一个正方形区域内进行搜索,系统建议我使用db.places.find,但是,这将返回一个pymongo.cursor.Cursor类,而我不知道如何从中提取地点结果。

有没有人知道我是应该将光标转换成字典并提取结果,还是应该使用另一种方法来查询正方形区域中的项目?顺便说一句,db是pymongo.database.Database类

代码为:

代码语言:javascript
复制
>>> 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的值,使用这些值,但它不会从这些代码中打印任何内容

EN

回答 4

Stack Overflow用户

发布于 2015-08-28 17:56:52

简单

代码语言:javascript
复制
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)

这就对了

票数 74
EN

Stack Overflow用户

发布于 2015-04-27 16:44:46

我建议创建一个列表,并将字典附加到其中。

代码语言:javascript
复制
x   = []
cur = db.dbname.find()
for i in cur:
    x.append(i)
print(x)

现在x是一个字典列表,你可以用通常的python方式来操作它。

票数 13
EN

Stack Overflow用户

发布于 2015-03-11 00:36:02

MongoDB find方法不返回单个结果,而是返回Cursor形式的结果列表。后者是一个迭代器,所以您可以使用for循环遍历它。

对于您的情况,只需使用findOne方法而不是find。这将返回单个文档作为字典。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28968660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档