我是python的初学者。我正在尝试连接到数据库并匹配用户输入的值。
if staff==<user entered value>and paper==<user entered value>:
test=db.staff.find({"staff":<user entered value>,"paper":<user entered value>})
print(test.get('staff'))
print(test.get('paper'))
如果test没有值,当数据库没有返回值时会出现错误
答案 0 :(得分:1)
.count
检查您的查询是否返回任何结果。 .find
会返回Cursor
的实例,因此您必须循环查询结果。
if staff==<user entered value>and paper==<user entered value>:
test = db.staff.find({"staff":<user entered value>,"paper":<user entered value>})
if(test.count()):
for doc in test:
print(test['staff'])
print(test['paper'])
如果您的收藏集中staff
和paper
是唯一的,请使用find_one
方法。
if staff==<user entered value>and paper==<user entered value>:
test = db.staff.find_one({"staff":<user entered value>,"paper":<user entered value>})
if(test):
print(test['staff'])
print(test['paper'])
答案 1 :(得分:1)
当您的db.staff.find_one({"staff":<user entered value>,"paper":<user entered value>})
与数据库中的任何内容不匹配时,test
的值将为None
。而None对象没有.get()
方法。
在运行.get()
方法