$type¶
-
$type¶ Syntax:
{ field: { $type: <BSON type> } }$typeselects the documents where the value of thefieldis the specified BSON type.Consider the following example:
This query will select all documents in the
inventorycollection where thepricefield value is a Double.If the
fieldholds an array, the$typeoperator performs the type check against the array elements and not thefield.Consider the following example where the
tagsfield holds an array:This query will select all documents in the
inventorycollection where thetagsarray contains an element that is itself an array.If instead you want to determine whether the
tagsfield is an array type, use the$whereoperator:See the SERVER-1475 for more information about the array type.
Refer to the following table for the available BSON types and their corresponding numbers.
Type Number Double 1 String 2 Object 3 Array 4 Binary data 5 Undefined (deprecated) 6 Object id 7 Boolean 8 Date 9 Null 10 Regular Expression 11 JavaScript 13 Symbol 14 JavaScript (with scope) 15 32-bit integer 16 Timestamp 17 64-bit integer 18 Min key 255 Max key 127 MinKeyandMaxKeycompare less than and greater than all other possible BSON element values, respectively, and exist primarily for internal use.Note
To query if a field value is a
MinKey, you must use the$typewith-1as in the following example:Example
Consider the following example operation sequence that demonstrates both type comparison and the special
MinKeyandMaxKeyvalues:To query for the minimum value of a shard key of a sharded cluster, use the following operation when connected to the
mongos:Warning
Storing values of the different types in the same field in a collection is strongly discouraged.