我想搜索名稱以特定字符串開頭的所有實體,這在 Datastore 中是否可行?我試過這個:q = datastore.NewQuery("Places").Filter("Name > ", "a")但它不起作用。如果這是不可能的,您可以向我建議什么替代解決方案?大查詢?App Engine 上的 BigTable 或其他服務?
1 回答

撒科打諢
TA貢獻1934條經驗 獲得超2個贊
這是可能的,但結合了 2 個不等式過濾器。
假設您要列出Places具有"li"前綴的列表。這可以用一個查詢來描述,該查詢列出Places了大于(或等于)"li" 和小于前綴的查詢,該前綴是"li"按字典順序排列的下一個字符串:"lj"。
這是 GQL 的樣子:
SELECT * FROM Places WHERE Name > 'li' AND Name < 'lj'
在 Go 中編碼如下所示:
q = datastore.NewQuery("Places").Filter("Name >", "li").Filter("Name <", "lj")
這將列出Places名稱所在的位置,例如:
liam
lisotto
lizst
但會排除以下名稱:
abc
ljoi
lj
qwerty
需要注意的一件事:大小寫字母在字典順序上是不同的,例如"List"小于"li"(即使"list"大于"li")!
- 1 回答
- 0 關注
- 143 瀏覽
添加回答
舉報
0/150
提交
取消