Find substrings in PyMongo

2019-06-18 23:38发布

I wanted to find sub-strings within a field in MongoDB using PyMongo.

The following query works fine and is what I require:

db.collection.find({ "Animal": /cat|Dog/i})

However, if I try passing the value /cat|Dog/i as a string in Python, it doesn't work.

Is there a way to replicate the query in PyMongo?

Note: /cat|Dog/i is value of field from another collection. It is in the form 'cat Dog'. Basically, I want to match substrings in one field with substrings in another.

1条回答
姐就是有狂的资本
2楼-- · 2019-06-19 00:18

You need to compile your regular expression pattern using re.compile() function into a regular expression object.

import re

pat = re.compile(r'cat|Dog', re.I)
db.collection.find({ "Animal": {'$regex': pat}})
查看更多
登录 后发表回答