2012-01-08 47 views
0

我有证件与一组长值的父文档ID,像这样:玩!中集(即集合或列表)吗啡查询字段

{..., "parentIDs" : [ 47, 49 ], ...} 

在我的实体类这一领域被定义为:

@Embedded(concreteClass = java.util.TreeSet.class) 
@Indexed 
public Set<Long> parentIDs = new TreeSet<Long>(); 

什么是Morphia查询返回具有特定父ID(例如47)的所有文档?

我使用:

List<Node> nl = Node.find("type", "event").filter("parentIDs", id).asList(); 

与ID为正确的和现有的父文件ID。 但它不起作用。我错过了什么?

感谢eriq

+0

顺便说一句,你的查询可以简化为:名单 NL = Node.find(“parentIDs,类型“,id,”event“)。asList(); – 2012-01-17 04:29:00

回答

2

我没有真正熟悉找到表达,我没有使用播放!但我解决这个问题的方式也应该适合你。而不是使用过滤器,使用方法字段()和hasThisOne()。

可能是这样的:

Node.find("type","event").field("parentIDs").hasThisOne(id).asList(); 

希望这有助于

问候 阿恩

+0

感谢您的帮助!该问题是由我的代码中的另一个点引起的。我发现了.filter(“parentIDs”,id).asList();也适用。 – eriq 2012-01-09 21:42:04