过滤子阵列 return Morphia

Filter Subarrays return Morphia

我有这样的问题:

@Entity
public class Event {

@Embedded
List<Edition> editions;
}

@Entity
public class Edition {

private A a;
private B b

private Date schedule

@Embedded
List<C> cs;
}



@Entity
public class C {
  ...
}

我想做的是按计划搜索过滤事件中的版本列表,但没有值 os Cs

类似

List<Event> events = this.basicDAO.find(query.filter("editions.schedule >", startsIn.toDate()).retrievedFields(true, 
                "editions.a",
                "editions.b",
                "editions.schedule",
                "editions.$")).asList();

但是这不起作用,我仍然得到 Cs 的值。我尝试混合 retrieveFields true 和 false put editions.c in false 子句但是这是不允许的。

有没有一种方法可以使用投影或投影始终return整个文档来过滤集合?

这可以使用聚合 $project 来实现,现在 Morphia 支持聚合(自 0.110 起)。 Here 你有一些关于聚合和组&投影的例子。