如何在 PyMongo 中搜索数据?
How to search for data in PyMongo?
我想知道如何在集合中搜索一些数据并获取 PyMongo 文档的其余数据(MongoDB 的 python 模块)。例如,我在名为 WindowsApp 的数据库中有一个名为 Users 的集合。如何搜索这样的用户:{"username":"CrispyBacon"}
并请求获取文档中的 {"password"}
字段。所以我正在寻找的是搜索这个:{"username":"CrispyBacon"}
并得到这样的响应:{"password":"ItsYummy321"}
如果文档是这样说的:{"username":"CrispyBacon", "password":"ItsYummy321"}
。这是我正在用它做的事情:https://pastebin.com/pE3AKNKE 我如何得到它来告诉我 {"password"}
的值?
您可以使用投影来询问 MongoDB 至 return 所需的字段。根据 docs,在 PyMongo 中它必须是这样的:
password = coll.find_one({"username":username}, {"password": 1, "_id": 0})
请注意,_id
字段始终包含在结果中,除非您明确告诉您不希望它被 returned。
编辑:如果您只需要密码字符串,则不需要投影。只需从 returned 字典中获取 password
键的值:
password = coll.find_one({"username":username})["password"]
我找到答案了!需要对接收到的变量进行迭代,因为它是需要迭代的 Cursor 类型。然后就可以通过key来抓取你想要的值了。例如:
username = easygui.enterbox("Enter your username:")
password = easygui.enterbox("Enter your password:")
getData = coll.find({"username":username}, {"password": 1, "_id": 0})
for i in getData: data = i
print(data["password"])
我想知道如何在集合中搜索一些数据并获取 PyMongo 文档的其余数据(MongoDB 的 python 模块)。例如,我在名为 WindowsApp 的数据库中有一个名为 Users 的集合。如何搜索这样的用户:{"username":"CrispyBacon"}
并请求获取文档中的 {"password"}
字段。所以我正在寻找的是搜索这个:{"username":"CrispyBacon"}
并得到这样的响应:{"password":"ItsYummy321"}
如果文档是这样说的:{"username":"CrispyBacon", "password":"ItsYummy321"}
。这是我正在用它做的事情:https://pastebin.com/pE3AKNKE 我如何得到它来告诉我 {"password"}
的值?
您可以使用投影来询问 MongoDB 至 return 所需的字段。根据 docs,在 PyMongo 中它必须是这样的:
password = coll.find_one({"username":username}, {"password": 1, "_id": 0})
请注意,_id
字段始终包含在结果中,除非您明确告诉您不希望它被 returned。
编辑:如果您只需要密码字符串,则不需要投影。只需从 returned 字典中获取 password
键的值:
password = coll.find_one({"username":username})["password"]
我找到答案了!需要对接收到的变量进行迭代,因为它是需要迭代的 Cursor 类型。然后就可以通过key来抓取你想要的值了。例如:
username = easygui.enterbox("Enter your username:")
password = easygui.enterbox("Enter your password:")
getData = coll.find({"username":username}, {"password": 1, "_id": 0})
for i in getData: data = i
print(data["password"])