0

親ドキュメントIDに次のような長い値のセットを持つドキュメントがあります。

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

私のEntityクラスでは、このフィールドは次のように定義されています。

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

特定の親ID(たとえば47)を持つすべてのドキュメントを返すMorphiaクエリは何でしょうか?

私が使用しているもの:

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

idは正しく、既存の親ドキュメントIDです。しかし、それは機能しません。私は何が欠けていますか?

ありがとうeriq

4

1 に答える 1

2

私はfind式にあまり詳しくなく、Playを使用していません。しかし、私がこの問題を解決する方法はあなたにも役立つはずです。フィルタを使用する代わりに、field()メソッドとhasThisOne()メソッドを使用します。

このようなものである可能性があります:

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

お役に立てれば

よろしくarne

于 2012-01-09T11:54:41.880 に答える