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 集合中的所有现有文档)因此您可以尝试使用它来代替对象并验证您的结果。
如果这对你有用,请告诉我。
我正在使用 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 集合中的所有现有文档)因此您可以尝试使用它来代替对象并验证您的结果。
如果这对你有用,请告诉我。