首页 > 解决方案 > 无法使用 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)

标签: pythonmongodbmongodb-query

解决方案


您的循环永远不会有机会多次迭代,因为您要么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")

推荐阅读