当我尝试 print(query) 时,我得到的结果是 <pymongo.cursor.Cursor object at 0x00000273CCF21D90>

Posted

技术标签:

【中文标题】当我尝试 print(query) 时,我得到的结果是 <pymongo.cursor.Cursor object at 0x00000273CCF21D90>【英文标题】:When I try to print(query) , I get the result as <pymongo.cursor.Cursor object at 0x00000273CCF21D90> 【发布时间】:2020-06-02 18:36:12 【问题描述】:

当我尝试print(query) 时,我得到的结果为&lt;pymongo.cursor.Cursor object at 0x00000273CCF21D90&gt;,而我想要包含具有"Friday Night" 的primaryTitle 的整个文档。请帮忙。

rgx = re.compile('.*Friday Night.*', re.IGNORECASE)  # compile the regex

query= db.IllegalCollect.find("$primaryTitle": rgx)

【问题讨论】:

您需要获取查询结果,而不仅仅是打印查询本身。 查询应该有额外的功能,例如如果你熟悉请求库,如果你要 print(req) 它只会给你 200 响应如果成功但如果你做了 print(req.json( )) 或 print(req.text()) 它会给你返回的实际数据 【参考方案1】:

find() 返回一个游标,您必须对其进行迭代才能获得结果;你不能只打印你找到的结果。您的选择是使用find_one()(虽然只会返回一条记录);使用list(query) 转换为列表,或使用for 循环迭代游标。

下面的例子展示了每种方法。

顺便说一句,查找查询中的 $primaryTitle 字段将不起作用;你可能需要primaryTitle 没有$

import pymongo
import re
db = pymongo.MongoClient()['mydatabase']

db.IllegalCollect.insert_one('primaryTitle': 'Last Friday Night, Yeah we maxed our credit cards')
db.IllegalCollect.insert_one('primaryTitle': 'And got kicked out of the bar, So we hit the boulevard')

rgx = re.compile('.*Friday Night.*', re.IGNORECASE)  # compile the regex

query = db.IllegalCollect.find_one('primaryTitle': rgx)
print (query)

query = db.IllegalCollect.find('primaryTitle': rgx)
print (list(query))

query = db.IllegalCollect.find('primaryTitle': rgx)
for item in query:
    print (item)

【讨论】:

非常感谢您的帮助:)

以上是关于当我尝试 print(query) 时,我得到的结果是 <pymongo.cursor.Cursor object at 0x00000273CCF21D90>的主要内容,如果未能解决你的问题,请参考以下文章

解析云代码 query.withinKilometers

mysqli_query():在PHPUnit中测试PHP函数时无法获取mysqli

GAE Big Query - 使用日期时的掩码

当我将 print_r() 应用于 PHP 中的数组时,为啥会得到“资源 id #4”? [复制]

query.on 不是函数

不能混合得到和过滤?