使用DatastoreService
我如何查询String
包含一些类似于 Java 的字符串String
:
- 包含
- 以。。开始
- 以。。结束
在查询字符串属性时,完全匹配是最简单的,因为这种行为“开箱即用”。
“startsWith”查询可以通过转换为 来相当容易地完成property startsWith: abc
,property >= 'abc' and property < 'abd'
您可以在其中计算范围的结尾。
“endsWith”可以通过存储字符串的反向副本来完成,并像上面一样创建查询,但目标是反向的。即,property endsWith: 'abc'
变为 `propertyReversed >= 'cba' 和 propertyReversed < 'cbb'。
“包含”是一个很大的挑战。有几种方法,适合您情况的方法取决于您的情况。如果字符串相对较短(例如,地址的名称),您可以存储尾随子字符串的列表,并使用上述范围查询与它们进行匹配。
正如 Dave 在他的回答中提到的,contains
它不能作为 Datastore 原语使用。如果您正在寻找包含查询,搜索 API是一个不错的选择(注意:它仍处于试验阶段)。