找出MongoDB集合中使用的所有类型

时间:2019-06-12 18:12:25

标签: mongodb types aggregation-framework

假设您要使用mongoexport / import更新集合(出于here的解释原因。您应确保集合中的类型是JSON安全的。

如何使用聚合框架确定集合的所有文档中使用的所有类型,包括数组元素中使用的所有类型?

1 个答案:

答案 0 :(得分:1)

您可以将$objectToArray$map$type结合使用。

我认为这样应该可以帮助您入门:

db.collection.aggregate([
  { $project: {
      types: {
        $map: {
          input: { $objectToArray: "$$CURRENT" },
          in: { $type: [ "$$this.v" ] }
        }
      }
    }
  }
])

请注意,它不是递归的,也不会深入到数组的值中,因为我也不确定要深入多少个级别,甚至不需要输出什么。因此,希望这对您来说是个好的开始。

您可以看到包含各种类型working here的输入的聚合。