过滤子阵列 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 你有一些关于聚合和组&投影的例子。
我有这样的问题:
@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 你有一些关于聚合和组&投影的例子。