python 的pymongo db.collection.find()出来是个游标,怎么才能转成数据?

发布于 2022-09-04 05:12:45 字数 130 浏览 19 评论 0

find出来直接print是<pymongo.cursor.Cursor object at 0x040DC8D0>

网上看到的都是遍历,如果我想把find出来的结果保存到一个列表就不能保存了,所以请问大神要怎么弄?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

岛徒 2022-09-11 05:12:45

其实很简单的,上面的答案都是遍历,在python中

array = list(posts.find())#posts是我的collection
type(array)
#list

图片描述

补充一下

#list to datafram
import pandas as pd
df = pd.DataFrame(array)
终止放荡 2022-09-11 05:12:45
>>> db.test.find()
<pymongo.cursor.Cursor object at 0x108dabf50>
>>>
>>> list(db.test.find())
[{'_id': ObjectId('5839b12eee86fb71849a0905'), 'name': 'Tom'},
 {'_id': ObjectId('5839b134ee86fb71849a0906'), 'name': 'Jim'}]
弃爱 2022-09-11 05:12:45

在pymongo中使用find是得到1个游标对象的,如果你想实现MongoDB shell中find操作,例如:

> db.test.find()
{ "_id" : ObjectId("5838531e0f3577fc9178b834"), "name" : "zhangsan" }

在pymongo中需要使用find_one方法而不是find方法:

>>> print db.test.find_one()
{u'_id': ObjectId('5838531e0f3577fc9178b834'), u'name': u'zhangsan'}

>>> print db.test.find()
<pymongo.cursor.Cursor at 0x7f4ac789e450>
>>> result = []
>>> for x in db.test.find():
          result.append(x)
>>> print(result)
>>> [{u'_id': ObjectId('5838531e0f3577fc9178b834'), u'name': u'zhangsan'},...]

这样就可以得到多条数据了。

瑾夏年华 2022-09-11 05:12:45

我知道得就是遍历游标一个一个append到列表中去,难道还有其他办法?求大神指导

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文