2012-01-08 4 views
0

私はそうのような彼らの親文書IDのロング値のセットを持つ文書があります。私のエンティティクラスでPlay!コレクション内の問合せMorphia(すなわち設定またはリスト)フィールド

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

このフィールドは次のように定義されます

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

特定の親ID(例:47)のすべてのドキュメントを返すMorphiaクエリは何ですか?

私が使用しています:IDを持つ

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

は正しいと既存の親文書IDであること。 しかし、それは動作しません。私は何が欠けていますか?

おかげでeriq

+0

に役立ちますところで、あなたのクエリを簡略化することができます:リスト NL = Node.find( "parentIDs、タイプ "、id、"イベント ")。asList(); –

答えて

2

私は表現を見つけて、私はプレイ使用していないと、本当に慣れていませんよ!しかし、私はこの問題を解決する方法もあなたのために働くはずです。フィルタを使用する代わりに、fields()メソッドとhasThisOne()メソッドを使用します。

はこのようなものが考えられます。

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

希望これは

よろしく アルネ

+0

助けてくれてありがとう!この問題は私のコードの別のポイントに起因します。 .filter( "parentIDs"、id).asList();が見つかりました。同様に動作します。 – eriq

関連する問題