我正在使用Objectify来创建一个实体:
@Entity
public class Collection {
@Id
private String name;
@Index
private List<Long> viewersIds;
//other fields
}
现在我正在尝试检索具有特定viewerId的集合列表,让我们说1.我试过了:
List<Collection> usersCollections = ofy().load().type(Collection.class).filter("viewersIds",1).list();
和
ofy().load().type(Collection.class).filter("viewersIds =",1).list();
和
ofy().load().type(Collection.class).filter("viewersIds ==",1).list();
使用以下方式获取所有收藏集:
ofy().load().type(Collection.class).list();
我做错了什么? 谢谢!
修改
更改Colllection对象以包含字符串列表lookupIds而不是Long
@Index
private List<String> viewersIds;
然后用以下方式查询:
ofy().load().type(Collection.class).filter("viewerIds", value).list();
的工作原理。如果列表可以是字符串,那么这可能是一个解决方案。
答案 0 :(得分:1)
您正在&#39;
中寻找&#39;.filter("<collection> in", value)
答案 1 :(得分:1)
要检查的一件事是,viewerIds确实在应该返回的实体中编入索引:https://console.cloud.google.com/datastore/entities/query