簡體   English   中英

檢查數據庫中是否已存在用戶名(Python + Pymongo)

[英]Check if username already exists in database (Python + Pymongo)

我正在嘗試制作一個注冊模塊以在更大的登錄/身份驗證程序中使用,並且我需要制作一個可以檢查用戶名是否已存在於集合中的函數。

我沒有嘗試過更多,這是我第一個真正的編程項目,我被困在這部分。 我意識到我可以使用內嵌詞典數據庫,但我想學習如何將 3rd 方數據庫與我的編程集成。 from pymongo import 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) 中的任何內容,則打印“用戶名可用”。 如果查詢中的任何內容與輸入匹配,則打印“請再試一次”,但是,它接受輸入的所有內容並退出代碼。

您正在使用find_one()在 Username 中查找一個條目,然后檢查unameInput是否等於它。 如果不是完全匹配,它將執行 name is available 的代碼。 改為嘗試 find() ,因為這將迭代集合中的所有文檔。

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

我想通了,我將字典放在文檔中的字典中,並且沒有迭代“allList”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM