使用 pymongo 查询 mongodb
querying mongodb using pymongo
我刚开始使用 mongodb 并设置了一个测试数据库来处理我创建的几个脚本的网络抓取结果。现在,date_found 正在作为字符串加载。当我在 mongohub 中 运行 这个时:
{"date_found" : /.*2015-05-02.*/}
我得到了所有带有“2015-05-02”的 collections。太棒了!
然而,当我 运行:
for item in collection.find({"date_found": "/.*2015-05-02.*/"}):
print item
我一无所获。
另外,这个:
for item in collection.find():
print item
给了我所有的 collections,所以似乎一切都在我可以查询数据库的范围内。
有没有人可以告诉我我犯了什么愚蠢的错误(或者我错过了什么)?
在 pymongo 中,要包含 regular expression,您可以尝试这样的操作:
import re
regx = re.compile(".*2015-05-02.*")
for item in collection.find({"date_found": regx})
print item
或使用 $regex
运算符:
import re
regx = re.compile(".*2015-05-02.*")
for item in collection.find({"date_found": {"$regex": regx} })
print item
我刚开始使用 mongodb 并设置了一个测试数据库来处理我创建的几个脚本的网络抓取结果。现在,date_found 正在作为字符串加载。当我在 mongohub 中 运行 这个时:
{"date_found" : /.*2015-05-02.*/}
我得到了所有带有“2015-05-02”的 collections。太棒了!
然而,当我 运行:
for item in collection.find({"date_found": "/.*2015-05-02.*/"}):
print item
我一无所获。
另外,这个:
for item in collection.find():
print item
给了我所有的 collections,所以似乎一切都在我可以查询数据库的范围内。
有没有人可以告诉我我犯了什么愚蠢的错误(或者我错过了什么)?
在 pymongo 中,要包含 regular expression,您可以尝试这样的操作:
import re
regx = re.compile(".*2015-05-02.*")
for item in collection.find({"date_found": regx})
print item
或使用 $regex
运算符:
import re
regx = re.compile(".*2015-05-02.*")
for item in collection.find({"date_found": {"$regex": regx} })
print item