Mongodb Morphia聚合查找匹配

时间:2017-03-06 14:48:24

标签: java mongodb aggregation-framework lookup morphia

我使用Morphia查找问题。 这是我的代码:

class person{
private ObjectId id;
private String name;
}

class book{
private ObjectId id;
private String title;
}

class person_ownership{
private ObjectId id;
private person p;
private List<book> books;
}

List<book> BOOKs = new ArrayList<book>();

我尝试的是通过搜索人物集合来过滤书籍集合中的ID

这是我的汇总管道

AggregationPipeline aggr = DS.createAggregation(person.class);
aggr.lookup("person_ownership", "id", "p.id", "ownership");
aggr.unwind("ownership");

Query<person> q = DS.createQuery(person.class);
q.disableValidation().criteria("ownership.books").in(BOOKs);
aggr.match(q );

Iterator<person> aggregate = aggr.aggregate(person.class, opts);

我必须 q.disableValidation()才能通过。但管道仍然没有返回。

我必须通过传递人来查询这个!!!

甚至可能吗?那里没有例子!!!

1 个答案:

答案 0 :(得分:0)

似乎这不可能! Morphia不会在参考字段上查找。 我不得不在另一个引用人员ID的字段中进行聚合工作!!!