Python mongodb,查找->;如何将值传递给查询

Python mongodb,查找->;如何将值传递给查询,python,mongodb,pymongo,Python,Mongodb,Pymongo,我有一个已经创建并运行的mongodb数据库,我已经在它下面创建了一个名为“customers”的集合 在此集合下,我有多个已插入的词典 我通过python通过mongopy连接到它,我想列出“number”字段与我的值相等的所有字典。这个值还不知道 我的字典中有一行: {“u id”:ObjectId('5d8641b89d8e8bde6b587693'),'number':'123562','name':'Viola','address':'sideway1633'} 我有一个文本文件,它只

我有一个已经创建并运行的mongodb数据库,我已经在它下面创建了一个名为“customers”的集合 在此集合下,我有多个已插入的词典

我通过python通过mongopy连接到它,我想列出“number”字段与我的值相等的所有字典。这个值还不知道

我的字典中有一行: {“u id”:ObjectId('5d8641b89d8e8bde6b587693'),'number':'123562','name':'Viola','address':'sideway1633'}

我有一个文本文件,它只包含一个数字,我将它存储到'recognizednumber'中 我有一个不同的.py,在我知道我想要搜索什么样的值之前需要实现它。(这就是创建txt并将值写入其中。)

我正在从.txt读取这个数字,并将其存储到“recognizednumber”中

我想打印出集合中的所有词典行,其中的“number”字段与我的“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)
解决

我不得不双倍脱衣

recognizednumber = str(recognizednumber).strip('[]')
recognizednumber = str(recognizednumber).strip("'")

您只需要传入字符串,不需要任何额外的引号或括号;您可以使用以下方法去除这些内容:

recognizednumber = recognizednumber[2:-2]
看看这是否有效:

from pymongo import MongoClient
client = MongoClient()
mydb = client['yourdatabase']
mycol = mydb["customers"]

mycol.insert_one({'number': '123562', 'name': 'Viola', 'address': 'Sideway 1633'})

recognizednumber = "['123562']"
recognizednumber = recognizednumber[2:-2]
print(recognizednumber)
myquery = {"number": recognizednumber}
mydoc = mycol.find(myquery)

for x in mydoc:
    print(x)

您确定python正确连接到数据库吗?我建议您尝试使用python程序插入一个伪造的记录(文档)。我用另一个.py测试了它以连接到它,它可以工作。randomname=“William”myquery2={“name”:randomname}mydoc2=mycl.find(myquery2)在mydoc2:print(x2)中为x2插入一个伪造的记录(文档),它向我显示了很多字典没有问题,谢谢你调查这件事。实际上,您的解决方案剥离了我的字符串,如果我打印出来,它会显示:[]