mongodb 聚合分组后,如何像Java Stream Group一样保留所有元素并封装成集合?
如mongodb里有如下数据
{ "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2}
{ "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 10}
{ "_id" : 5, "item" : "abc", "price" : 10, "quantity" : 10}
按 quantity 分组之后,如何才能得到如下文档?
[
{
"quantity":2,
"count":1,
"details":[
{ "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2}
]
},
{
"quantity":10,
"count":2,
"details":[
{ "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 10},
{ "_id" : 5, "item" : "abc", "price" : 10, "quantity" : 10}
]
}
]
类似于Java中Stream:
Map<Integer, List<Object>> result = list.stream()
.collect(Collectors.groupingBy(o -> o.getQuantity()));