$unwind
を実行するとき reviews
フィールド、クエリのreturnjson構造がHotel
と一致しません もうクラス。 $unwind
操作はreviews
を作成します リストの代わりにサブオブジェクト。 robomongoまたは他のツールでクエリを試してみると、戻りオブジェクトがそのようなものであることがわかります
{
"_id" : ObjectId("59b519d72f9e340bcc830cb3"),
"id" : "59b23c39c70ff63135f76b14",
"name" : "Signature",
"reviews" : {
"id" : 1,
"userName" : "Salman",
"rating" : 8,
"approved" : true
}
}
したがって、Hotel
の代わりに別のクラスを使用する必要があります UnwindedHotel
のように
public class UnwindedHotel {
private String name;
private int pricePerNight;
private Address address;
private Review reviews;
}
UnwindOperation unwindOperation = Aggregation.unwind("reviews");
Aggregation aggregation = Aggregation.newAggregation(unwindOperation);
AggregationResults<UnwindedHotel> results=mongoOperations.aggregate(aggregation,"hotel", UnwindedHotel.class);