我试图制作一个注册模块以在更大的登录/身份验证程序中使用,我需要创建一个可以检查用户名是否已存在于集合中的函数。
除了这个,我还没有做太多尝试,这是我第一个真正的编程项目,我被困在这一部分。我意识到我可以使用嵌入式字典数据库,但是我想学习如何将第三方数据库与我的程序集成。 从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)中不等于任何内容,则打印“用户名可用”。如果查询中的任何内容与输入匹配,则打印“请重试”,但是,它接受输入的所有内容并退出代码。
答案 0 :(得分:1)
您正在使用find_one()
在“用户名”中查找一个条目,然后检查unameInput
是否等于它。如果不完全匹配,它将执行名称可用的代码。
请尝试使用find(),因为这会遍历集合中的所有文档。
unameQuery2 = userCol.find()
if unameInput not in unameQuery2:
# do something
答案 1 :(得分:0)
我发现,我将字典放在文档中的字典中,而不是迭代“ allList”。