Мое приложение использует данные Spring Mongodb, и я пытаюсь сортировать данные в порядке убывания внутри встроенного документа, который НЕ работает.Данные о Spring Mongodb Aggregation SORT order
Пожалуйста, обратитесь ниже JSON документа & Aggregation запрос:
JSON - со документа:
{
"_id" : ObjectId("57c6fd7099275c83e6a5b312"),
"from" : "China",
"stockDemandPerItem" : [
{
"item" : "apples",
"demand" : 150.0
},
{
"item" : "plums",
"demand" : 200.0
},
{
"item" : "pears",
"demand" : 250.0
},
{
"item" : "oranges",
"demand" : 100.0
}
]
}
Spring Data MongoDB Aggregation запроса:
TypedAggregation<Stock> typedAggr =
newAggregation(Stock.class, unwind("stockDemandPerItem"),
project("stockDemandPerItem.item",
"stockDemandPerItem.demand"),
sort(Direction.DESC, "stockDemandPerItem.demand"),
limit(3));
AggregationResults<StockDemandPerItem> results = mongoTemplate.
aggregate(typedAggr, StockDemandPerItem.class);
List<StockDemandPerItem> list = results.getMappedResults();
for(StockDemandPerItem stockDemandPerItem : list) {
System.out.println(stockDemandPerItem.getItem() +
" :: " + stockDemandPerItem.getDemand());
}
токовый выход :
яблоки :: 150,0
сливы :: 200,0
апельсины :: 500,0
Ожидаемый выход (по убыванию Сортировать по запросу):
апельсины :: 500,0
сливы :: 200,0
Яблоки: 150,0
Не могли бы вы помочь получить ожидаемый результат в порядке убывания?
Кроме того, я планирую найти максимальное значение «спрос», используя указанный выше запрос с лимитом (1) & Sort-Direction.DESC. Или есть ли другой лучший подход для получения максимального значения «спроса»?
могли бы вы опубликовать свой Stock.java? – alexbt