当我尝试 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)
时,我得到的结果为<pymongo.cursor.Cursor object at 0x00000273CCF21D90>
,而我想要包含具有"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>的主要内容,如果未能解决你的问题,请参考以下文章
mysqli_query():在PHPUnit中测试PHP函数时无法获取mysqli