Django Mongo正则表达式查询

时间:2015-08-20 17:13:54

标签: regex django mongodb mongoengine

我正在使用django,我需要使用正则表达式从MongoDB获取一些信息。

直接将它运行到mongo shell中我得到了我想要的结果:

db.recipe.find({"title.spanish": {"$regex" : /s[aáAÁ]lm[oóOÓ]n/i}})

我尝试使用原始在django中执行相同的查询,但它给了我一个我无法弄清楚的语法错误。

recipes = Recipe.objects(__raw__={'title.spanish' : {'$regex' : /s[aáAÁ]lm[oóOÓ]n/i}})

有关如何在django中执行此查询的任何建议?

1 个答案:

答案 0 :(得分:1)

您应该尝试以下方法:

regx = re.compile('s[aáAÁ]lm[oóOÓ]n', re.IGNORECASE)

recipes = Recipe.objects(__raw__={'title.spanish': {'$regex': regx.pattern}})

并验证对象查询集管理器之前是否未添加过滤器。我通常将all方法添加到模型类中(此方法返回mongo集合中的所有现有文档),因此您可以尝试使用它来代替对象并验证结果。

请告诉我这是否适合您。