使用MongoDB的灵活模式,我想学习给定字段的不同“ $ type”。
例如,我可以查询以查看符合我期望的类型的所有文档
db.getCollection('sample').find({"_id": {$type: 7}})
如何获取$type
的{{1}}列表?
或者我该如何重写此查询以显示与给定类型编号不匹配的所有文档?
谢谢!
答案 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"} }
])