无法使用pymongo查询Mongodb
我一直在尝试用.py文件通过pymongo查询MongoDB。
现在的问题是我想让用户自己输入搜索字段。
这是我的代码...
from pymongo import Connection
if __name__ == "__main__":
con = Connection()
db = con.fyptwitter
collection = db.fyp
userInputFirst = str(raw_input("Enter: "))
userInputSecond = str(raw_input("Enter 2nd: "))
strFirst = userInputFirst
stringTest = "/" + userInputSecond + "/i"
query = db.fyp.find({ userInputFirst : stringTest})
print query
for i in query:
print i
break
从我的mongoConnection来看,查询是正确的。但是问题是它没有返回任何结果。
这是什么原因呢?
相关问题:
2 个回答
0
你的查找函数写得不太好!当你定义一个查找函数时,必须把要查找的值传递给这个函数,然后根据这个值去获取其他信息!我给你一个我自己用的例子!
我的集合里有一个字典,里面存着单词和它的意思:
dic={"word":word,
"mean":mean}
而我的查找函数是这样的:
def find_word(self,searched_word):
#print self.dbh.users.find_one({"word":"example"})# for find a dictionary
users = self.dbh.users.find({"word":searched_word})
for user in users:
return user.get("mean")
现在在你的查询中,如果 stringTest = "/" + userInputSecond + "/i" 这个字符串确实在你的字典里存在,你可以把 stringTest 传递给你的函数。我还建议根据你的集合保存方式使用 str(stringTest)!
0
要在pymongo中设置正则表达式,你可以使用这个:
query = db.fyp.find({ userInputFirst : {'$regex':userInputSecond, '$options' : 'i'}})
可以查看这个链接了解更多信息:http://docs.mongodb.org/manual/reference/operator/query/regex/