首页 > 解决方案 > Mongodb:如何列出字段的类型?

问题描述

我在集合中有一个字段 - 在 99.9% 的文档中它是一个数组 - 在 00.01% 中是一个子文档

我可以 - LIST 记录此字段和报告此字段类型的列吗?- 和/或 - 按此字段的类型过滤文档?

标签: mongodb

解决方案


是的,您可以使用$type操作员:

过滤:

db.someCollection.find({ "fieldThatMightBeAnArray": {$type: 4} })

有关类型(和字符串别名)的列表,请参阅查询运算符的文档页面$type

列出列中的类型:

您应该能够在聚合查询中使用$type聚合运算符。

db.someCollection.aggregate([{
  $project: {
    "fieldThatMightBeAnArray": 1,
    "typeOfFieldThatMightBeAnArray" : { $type: "$fieldThatMightBeAnArray" }
  }
}])

(我自己没有测试最后一个)


推荐阅读