【发布时间】:2015-06-09 13:44:27
【问题描述】:
我正在将 Google Datastore 用于 Android 应用程序,后端是用 Java 编写的。在一个表中,我想为同一个属性设置多个值:
Entity newGroup = new Entity("group");
newGroup.setProperty("member", "A");
newGroup.setProperty("member", "B");
newGroup.setProperty("member", "C");
datastore.put(newGroup);
然后我想查询以查找用户所属的所有组,我执行以下操作:
Query.Filter filter = new Query.FilterPredicate("member", Query.FilterOperator.EQUAL, "A");
Query q = new Query("group").setFilter(filter);
PreparedQuery pq = datastore.prepare(q);
但是,查询不会产生任何结果。在文档中提到,如果属性的至少一个值与过滤器匹配,则返回实体,这让我感到困惑。
谢谢!
【问题讨论】:
-
您的放置和查询之间需要多长时间?
-
动作是由用户交互触发的,所以我认为这应该不是问题。
-
嗯,最终一致性是数据存储的一个重要概念,所以是的,它可能是相关的。
-
在您的示例中,
member将等于C,因为您正在覆盖A和B。根据 Andrei 的回答,您需要List<String>。
标签: android google-app-engine google-cloud-datastore