2013-12-23 38 views
7

即時通訊做下面的查詢,其完美的工作,使我有一項符合該類型的過濾器的文件的一部分查詢與類型MongoDB中不等於

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

但是我嘗試讓所有的設備存在,但不是類型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}}}}); 

但他們都拋出同樣的異常

exception: type not supported for appendMinElementForType 

有關如何執行此查詢的任何線索?

回答

13

這應該工作:

{phoneNumber:/^\+/ ,$and:[{devices:{$exists:true}},{devices:{$not:{$type:3}}}]}