Google数据存储区同一属性的多个值

时间:2015-06-09 13:44:27

标签: android google-app-engine google-cloud-datastore

我正在使用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);

但是,查询不会生成任何结果。在文档中提到,如果属性的至少一个值与过滤器匹配,则返回实体,这使我感到困惑。

谢谢!

1 个答案:

答案 0 :(得分:1)

应该是:

List<String> members = new ArrayList<String>(3);
members.add("A");
members.add("B");
members.add("C");

Entity newGroup = new Entity("group");
newGroup.setProperty("member", members);
datastore.put(newGroup);