mongodb 聚合分组后,如何像Java Stream Group一样保留所有文档并封装成集合?

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()));
阅读 1.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题