python - 无法使用 python 从 mongodb 获取多个 pin
问题描述
这是我在下面的代码,其中我创建了两个数据,第一个 pin 例如 1111 和另一个 2222 ,如果我使用数据库中的第一个 pin(即 1111),它将从 mongodb 获取数据并返回登录成功但如果我使用另一个 pin (即2222)它说无效的引脚。我可以知道代码有什么问题吗?
import pymongo
import sys
cluster = pymongo.MongoClient("mongodb://localhost:27017/")
db = cluster['test']
collection = db['test']
login_data = int(input("Enter the pin:"))
result = collection.find({})
for item in result:
if login_data == item['pin']:
print("Login successfully")
break
else:
login_data != item['pin']
print("Invalid pin")
sys.exit(0)
解决方案
您的循环永远不会有机会多次迭代,因为您要么break
要么sys.exit
. 您的操作可以通过使用过滤条件和 a 来简化find_one()
,不需要 for 循环,例如
result = collection.find_one({'pin': login_data})
if result is None:
print("Invalid pin")
sys.exit(0)
print("Login successfully")
推荐阅读
- java - 带有安全(HTTPS)客户端抛出异常的 Eureka 服务器中的服务注册表
- bamboo - Bamboo JDK 14 功能
- algorithm - 为数组元素选择 2 个可能的数字以获得总和 's'
- java - Corda - 在 Corda 保险库中存储字符串数据是否有任何限制?
- c - 关于通过 **array 或 array[x][y] 初始化数组的多个问题
- webview - 在 UWP 应用程序的 WebView 中使用智能卡 USB 证书的问题
- regex - 基于数字而不是模式有条件地使用 gsub
- android - MVVM 中的存储库与内容提供程序
- ios - `.drive()` 和 `.bind(to:)` 之间的区别
- django - 过滤外键属性不会过滤掉外键对象