2012-01-08 53 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