Filter Subarrays返回Morphia

时间:2015-02-04 18:04:47

标签: mongodb projection 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将editions.c放在false子句中,但是不允许这样做。

有没有办法使用投影或投影过滤集合总是返回完整的文档?

1 个答案:

答案 0 :(得分:1)

可以使用聚合$ project实现,现在Morphia支持聚合(自0.110起)。 Here您有一些关于汇总和分组与投影的示例。