pymongo:使用正则表达式

时间:2018-02-07 22:22:27

标签: python mongodb pymongo

我正在使用python脚本连接到mongodb并查询集合。我想找到key" hp"的值。以" cdl"开头。当我尝试通过mongo shell时,此查询成功运行,但通过我的python脚本,我看到了错误。我需要有任何转义字符吗?

./ pymongoconn.py   文件" ./ pymongoconn.py",第20行

用于conn.collection.find中的响应({" hp":/ ^ cdl /},{" n":1," hp":1 ," _id":0," rsid":1," v":1}):

                                      ^      
                               SyntaxError: invalid syntax

以下是我的询问:

for response in conn.collection.find({"hp": /^cdl/},{"n":1 ,"hp":1 , "_id":0 ,"rsid" :1, "v":1}):

    print (response)

2 个答案:

答案 0 :(得分:2)

使用re.compile:

dbm.gnu

答案 1 :(得分:0)

我认为你的语法对于pymongo中的$regex来说有点不对。

尝试:

 conn.collection.find({"hp": {"$regex": "^cdl"}}, {"n":1 ,"hp":1 , "_id":0 ,"rsid" :1, "v":1})

您还可以将$option添加到$regex。如果你想要不区分大小写;

conn.collection.find({"hp": {"$regex": "^cdl", "$options": "i"}}))

根据mongo $regexhere

,您可以使用所有选项