Django Mongo 正则表达式查询

Django Mongo Regex query

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

运行这个直接进入mongoshell我得到我想要的结果:

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

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

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

关于如何在 Django 中执行此查询的任何建议?

您应该尝试以下操作:

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

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

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

如果这对你有用,请告诉我。