【发布时间】:2014-08-02 20:55:42
【问题描述】:
使用 mongodb shell,我能够执行检索整个文档的聚合查询。 为此,我使用 $$ROOT 变量。
db.reservations.aggregate([
{ $match : { hotelCode : "0360" } },
{ $sort : { confirmationNumber : -1 , timestamp: -1 } },
{ $group : {
_id : "$confirmationNumber",
timestamp :{$first : "$timestamp"},
fullDocument :{$first : "$$ROOT"}
}}
])
它检索内容为confirmationNumber、timestamp、fullDocument 的对象。 fullDocument 是整个文档。
我想知道是否可以对 Spring-Data 和聚合框架做同样的事情。
我的java代码是:
TypedAggregation<ReservationImage> aggregation = newAggregation(
ReservationImage.class,
match(where("hotelCode").is(hotelCode)),
sort(Direction.DESC,"confirmationNumber","timestamp"),
group("confirmationNumber").
first("timestamp").as("timestamp").
first("$$ROOT").as("reservationImage"));
List<myClass> items = mongoTemplate.aggregate(
aggregation,
myClass.class).getMappedResults();
错误是: org.springframework.data.mapping.PropertyReferenceException:找不到类型 myClass 的属性 $$
你有什么想法吗?
谢谢。
【问题讨论】:
-
为什么不应该一样呢?您发现任何不同之处的实际 Java 代码是什么?
-
感谢您的回复。我将在我的问题中添加我的 java 代码
标签: java mongodb spring-data aggregation-framework