首页 > 解决方案 > MongoDB 枚举一个键的所有数据类型

问题描述

我有以下收藏,

{
    "_id" : ObjectId("5cfa3281614216570a718539"),
    "vendor_id": '11111'
}

{
    "_id" : ObjectId("5cfa3281614216570a718539"),
    "vendor_id": '11112'
}

{
    "_id" : ObjectId("5cfa3281614216570a718539"),
    "vendor_id": 10000
}

我喜欢找出所有的数据类型vendor_id

db.collection.aggregate( 
    [ 
        { "$project": { "fieldType": {  "$type": "$vendor_id"  } } } 
    ]
)

但我想知道是否有一种方法可以列出所有数据类型vendor_id,例如;

["string", "int"] 

标签: mongodbaggregation-frameworkmongo-shell

解决方案


您可以使用以下聚合

db.collection.aggregate([
  { "$group": {
    "_id": null,
    "verdorIds": {
      "$addToSet": {
        "$type": "$vendor_id"
      }
    }
  }}
])

推荐阅读