谷歌云数据存储不允许进行 SQL 风格的搜索查询,如
SELECT * FROM Person WHERE Name LIKE "Rob*"
那会返回Rob, Robert, Roberto, Roberta, Roby
等等。
GCP数据存储区仅允许使用运算符过滤字段:>, >=, <, <=
使用以下规则:
任何大写字母都小于任何小写字母
a < b < c < ... < z
有了这些规则,查询
query := datastore.NewQuery("Person").Filter("Name >= ", "Rob").Order("Name")
不仅会返回名称以 开头的所有 Person,Rob
还会返回名称大于Rob
(Ruben, Sarah, Zoe) 的所有 Person 以及名称以小写字母开头的所有 Person。
这篇文章是我在 Go 中找到的一个 hack,用于模拟 SQL 风格的搜索查询。
慕妹3242003
慕盖茨4494581
相关分类