在mongodb中查询类型不等于

Kur*_*aki 14 mongodb

我正在做以下查询,它完美地工作,并带给我符合类型过滤器的文档的一部分

db.users.find({phoneNumber:/^\+/, devices:{$exists:true, $type:3}});
Run Code Online (Sandbox Code Playgroud)

但是我试图获取所有存在但不是类型3(对象)的设备,我可以尝试每种类型[http://docs.mongodb.org/manual/reference/operator/query/type/],但是想要要知道是否有可能否定我试过的3型

db.users.count({phoneNumber:/^\+/, devices:{$exists:true, $type: { $neq: 3}}});
db.users.count({phoneNumber:/^\+/, devices:{$exists:true, $type: { $not: 3}}});
db.users.count({phoneNumber:/^\+/, devices:{$exists:true, $type: { $not: {$eq:3}}}});
Run Code Online (Sandbox Code Playgroud)

但他们都抛出了同样的例外

exception: type not supported for appendMinElementForType
Run Code Online (Sandbox Code Playgroud)

关于如何进行此查询的任何线索?

Cal*_*ero 21

这应该工作:

{phoneNumber:/^\+/ ,$and:[{devices:{$exists:true}},{devices:{$not:{$type:3}}}]}
Run Code Online (Sandbox Code Playgroud)