在Google App Engine中实现“以...开头”和“以...结尾”查询

5 投票
2 回答
4211 浏览
提问于 2025-04-15 15:00

我在想有没有人能给我一些建议,关于如何用Python在Datastore模型中实现一个以某个字符串开头或结尾的查询?

用伪代码来说,它大概是这样的……

查询所有实体A,条件是属性P以X开头

或者

查询所有实体B,条件是属性P以X结尾

谢谢,Matt

2 个回答

2

看起来你不能在一般情况下做到这一点,但对于前缀搜索(以某个字母开头的搜索)是可以的:

在Python中使用Appengine进行通配符搜索

16

你可以通过使用不等式过滤器来进行一个“以...开头”的查询:

MyModel.all().filter('prop >=', prefix).filter('prop <', prefix + u'\ufffd')

如果想要进行一个“以...结尾”的查询,就需要先把字符串反转过来,然后用和上面一样的方法来处理。

撰写回答