数据库调节的Python问题

时间:2015-08-05 07:30:29

标签: python mongodb

我是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没有值,当数据库没有返回值时会出现错误

2 个答案:

答案 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'])
    

如果您的收藏集中staffpaper是唯一的,请使用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()方法

之前,您可能需要使用if语句进行检查