在Android Studio中,我正在尝试从 Android 应用程序中使用Google Clood Datastore 。
使用 Google 示例https://cloud.google.com/datastore/docs/concepts/indexes#Datastore_Indexes_and_properties我可以将 Tom(32 岁)和 Lucy(30 岁)添加为 Acme 公司的 Person 和子项. 我可以看到这两个条目位于 Google Developers Console 的数据存储区中。
如果我设置如下查询过滤器,我可以从 Company Acme 检索孩子。
Key acmeKey = makeKey("Company", "Acme").build(); makeFilter("__key__", PropertyFilter.Operator.HAS_ANCESTOR, makeValue(acmeKey)).build()));
- 如果我只想检索年龄等于 32 的人,我添加到上面的过滤器
makeFilter("age", PropertyFilter.Operator.EQUAL, makeValue(32)).build()
然后,我得到了人汤姆。
- 如果我只想检索年龄等于 32 的人,我添加到上面的过滤器
- 但是,如果不是
Operator.EQUAL
我放置一个不等式过滤器,Operator.LESS_THAN
或者Operator.GREATER_THAN
我得到错误“找不到匹配的索引”。
我认为这是索引的问题,但我真的不明白如何设置索引。我使用 Android Studio,我根本不使用 App Engine。我只想像使用 MySQL 一样使用简单的WHERE age > 32
.
顺便说一句,我尝试使用 GQL 并遇到完全相同的问题,使用EQUAL
,但不使用GREATER_THAN
(在https://developers.google.com/apis-explorer中相同)。
那么,有人知道我该如何解决这个问题吗?谢谢 !!