MongoDB查询给定字段的不同$ type

时间:2019-02-10 15:34:35

标签: mongodb

使用MongoDB的灵活模式,我想学习给定字段的不同“ $ type”。

例如,我可以查询以查看符合我期望的类型的所有文档

db.getCollection('sample').find({"_id": {$type: 7}})

如何获取$type的{​​{1}}列表?

或者我该如何重写此查询以显示与给定类型编号不匹配的所有文档?

谢谢!

2 个答案:

答案 0 :(得分:0)

如果要查找给定字段的所有类型,则需要使用mongo聚合管道:https://docs.mongodb.com/manual/core/aggregation-pipeline/

如果您想重写此查询以查找不是特定类型的所有 的所有文档,则可以使用$ not运算符-https://docs.mongodb.com/manual/reference/operator/query/not/

{"_id": { $not: { $type: 7}}}

与您的问题无关,但mongo 3.6为类型添加了别名,因此您也可以将该查询写为{"_id": { $not: { $type: "objectId"}}} https://docs.mongodb.com/manual/reference/operator/query/type/

答案 1 :(得分:0)

我有兴趣在集合中获取特定字段的不同值类型,以下请求对我有帮助

db.getCollection('<collection_name>').aggregate([
   { $project: { "fieldType": {  "$type": "$<field_name>"  } } } 
  ,{ $group : {_id: "$fieldType"} }
])

使用的链接: Return actual type of a field in MongoDB