我一直在尝试使用pymongo使用.py文件查询到mongoDB。
现在的问题是我希望用户亲自输入searchField。
这是我的代码......
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 ,它显示查询是正确的。但问题在于它没有带来任何结果。
有什么理由?
答案 0 :(得分:0)
要使用pymongo设置正则表达式,您应该使用:
query = db.fyp.find({ userInputFirst : {'$regex':userInputSecond, '$options' : 'i'}})
检查http://docs.mongodb.org/manual/reference/operator/query/regex/
答案 1 :(得分:0)
你的查找功能不好!当你定义一个find函数时,你必须将值传递给function并根据它检索其他信息!我给你这个例子,我自己用它!
我的收藏包含一个单词及其含义:
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)
,具体取决于您的收藏节省!