我正在使用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);
但是,查询不会生成任何结果。在文档中提到,如果属性的至少一个值与过滤器匹配,则返回实体,这使我感到困惑。
谢谢!
答案 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);