如何读取Python中find()查询返回的游标对象?

问题描述 投票:0回答:2

我使用 pymongo 的 mongoClient 连接数据库。我进行了 find() 查询,但无法读取游标内的结果,我不知道为什么。在我从本地数据库进行此查询并且它起作用之前,现在我将所有代码移至 ubuntu 服务器上,并且相同的代码不再起作用。

我尝试了这个,但它在服务器上不起作用。在本地环境下,它可以工作

import json
import requests
from pymongo import MongoClient

client = MongoClient('mongodb://IP_ADDRESS/')
db=client.mydb
mycol = mydb["mycollection"]

array = []
for x in mycol.find():
    array.append(x)
print(array)

我也尝试过这个,但响应是一个光标,我不知道如何阅读这个

import json
import requests
from pymongo import MongoClient

client = MongoClient('mongodb://IP_ADDRESS/')
db=client.mydb
mycol = mydb["mycollection"]

x = mycol.find()
print(x)

这是我获得的输出:

<pymongo.cursor.Cursor object at 0x7fa7bd016c10>

我的期望值是这样的:

{ "_id" : ObjectId("5d47f749fa8ca433e0d58b5f"), "value1" : "result1", "value2" : "result2", "value3" : "result3"}
python mongodb pymongo
2个回答
1
投票

请找到以下源代码示例。

for post in posts.find():
    print(post)

0
投票

您必须按照 MongoDB 文档传递查询和预测:https://www.mongodb.com/docs/manual/reference/method/db.collection.find/

尝试这样:

x = mycol.find(query, {"_id":1, "value1":1, "value2":1,...}) 打印(x)

1 基本上意味着您需要在输出中看到哪个值。 如果你想查看键“value1”的值,则将其设置为“value1”:1。 如果您不想看到键“value1”的值,请将其设置为“value1”:0。

© www.soinside.com 2019 - 2024. All rights reserved.