检查数据库中是否已经存在用户名(Python + Pymongo)

时间:2019-01-25 16:44:29

标签: python python-3.x mongodb mongodb-query pymongo

我试图制作一个注册模块以在更大的登录/身份验证程序中使用,我需要创建一个可以检查用户名是否已存在于集合中的函数。

除了这个,我还没有做太多尝试,这是我第一个真正的编程项目,我被困在这一部分。我意识到我可以使用嵌入式字典数据库,但是我想学习如何将第三方数据库与我的程序集成。 从pymongo导入MongoClient 导入时间

client = MongoClient('localhost', 27017)
loginDB = client["loginDB"]
userCol = loginDB["userCol"]

##Username##
print('Choose A Unique Username')
time.sleep(1.2)
unameInput = input("Enter Username: ")
unameList = {'Username': unameInput}
unameQuery = {}
unameQuery2 = userCol.find_one({'Username.Username': {'$gt': 'a'}})

if unameInput != unameQuery2:
    print('Name is Available | Accepted!')
    allList = {'Username': unameList}
    userCol.insert_one(allList)
else:
    print('Sorry, Please Try Again.')`

预期结果是向前搜索所有以字母“ a”开头的所有内容。如果输入(unameInput)在查询结果(unameQuery2)中不等于任何内容,则打印“用户名可用”。如果查询中的任何内容与输入匹配,则打印“请重试”,但是,它接受输入的所有内容并退出代码。

2 个答案:

答案 0 :(得分:1)

您正在使用find_one()在“用户名”中查找一个条目,然后检查unameInput是否等于它。如果不完全匹配,它将执行名称可用的代码。 请尝试使用find(),因为这会遍历集合中的所有文档。

unameQuery2 = userCol.find() 
if unameInput not in unameQuery2: 
    # do something

答案 1 :(得分:0)

我发现,我将字典放在文档中的字典中,而不是迭代“ allList”。