【发布时间】:2019-09-22 01:12:39
【问题描述】:
我已经创建了一个正在运行的 mongodb 数据库,并且我已经在它下面创建了一个名为“customers”的集合 在这个集合下,我有多个已经插入的字典
我通过 mongopy 通过 python 连接到它,并且我想列出所有“数字”字段与我的值相等的字典。值未知。
我的字典中的一行: {'_id': ObjectId('5d8641b89d8e8bde6b587693'), 'number': '123562', 'name': 'Viola', 'address': 'Sideway 1633'}
我有一个文本文件,它只包含一个数字,我将它存储到“recognizednumber”中 我有一个不同的 .py 需要在我知道我想要搜索什么样的值之前实现。 (这就是创建 txt 并将值写入其中。)
我正在从 .txt 中读取此号码并将其存储到“recognizednumber”中
我想打印出我收藏中的所有字典行,其中“数字”字段与我的“已识别数字”值匹配。
如果我打印出来测试识别的数值,它的显示:
['12352']
不幸的是,它在打印出 mydoc 字典时没有显示任何匹配的值,所以我认为它不匹配。
有人可以帮忙吗,我如何将“未知”值传递到查询中?
非常感谢。
更新::
看起来问题出在: - 从文件中读取时,如果我打印出我的值:['12345'] - 如果我手动设置一个值:12345
'define which collection'
mycol = mydb["customers"]
'search for recognized number'
recognizednumber = open(FilePaths.fnRecognized, "r",encoding="UTF8").readlines()
print(recognizednumber)
myquery = {"number": recognizednumber}
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
【问题讨论】:
-
您确定您的python 正确连接到数据库吗?我建议您尝试使用您的 python 程序插入虚假记录(文档)以确保。
-
我在不同的 .py 中对其进行了测试以连接到它,它可以正常工作。
-
randomname = "William" myquery2 = {"name": randomname} mydoc2 = mycol.find(myquery2) for x2 in mydoc2: print(x2) 像这样测试名称,它向我展示了一个很多字典