基于文档转换的类型

时间:2019-10-03 17:39:30

标签: mongodb aggregation-framework

让我说我有一个mongodb文档

{
  "id" : 1,
  "types" : ["online" ,"offline"],
  "applications" : [ ["online", "online"], ["offline"] ]
}

我想变成

{
"id" : 1,
"types" : [
        {
          "type" : "online",
          "count" : 2,
          "applications" : [ "online", "online"]
        },
        {
          "type" : "offline",
          "count" : 1,
          "applications" : [ "offline" ]
        }
    ]
}

这里类型和应用程序数组可以是任意大小。

1 个答案:

答案 0 :(得分:1)

您可以分两步进行操作,将$map$filter结合使用,将typeapplications进行匹配,然后运行$reduce来获得{{1} }:

count

您可以决定在建立过滤条件时使用$allElementsTrue还是$anyElementTrue更好。

Mongo Playground