使用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的對象。全文檔是整個文檔。
我想知道是否可以用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代碼,你發現有什麼區別? –
感謝您的回覆。我會在我的問題 – Chessman