在PyMongo中查找子字符串

Vau*_*ein 7 python regex mongodb pymongo

我想使用PyMongo在MongoDB中的字段中查找子字符串.

以下查询工作正常,是我需要的:

db.collection.find({ "Animal": /cat|Dog/i})
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试/cat|Dog/i在Python 中将值作为字符串传递,则它不起作用.

有没有办法在PyMongo中复制查询?

注意:/cat|Dog/i是来自另一个集合的字段的值.它的形式是"猫狗".基本上,我想将一个字段中的子字符串与另一个字段中的子字符串匹配.

sty*_*ane 10

您需要使用re.compile()函数将正则表达式模式编译为正则表达式对象.

import re

pat = re.compile(r'cat|Dog', re.I)
db.collection.find({ "Animal": {'$regex': pat}})
Run Code Online (Sandbox Code Playgroud)