$type¶
-
$type
¶ Syntax:
{ field: { $type: <BSON type> } }
$type
selects the documents where the value of thefield
is the specified BSON type.Consider the following example:
This query will select all documents in the
inventory
collection where theprice
field value is a Double.If the
field
holds an array, the$type
operator performs the type check against the array elements and not thefield
.Consider the following example where the
tags
field holds an array:This query will select all documents in the
inventory
collection where thetags
array contains an element that is itself an array.If instead you want to determine whether the
tags
field is an array type, use the$where
operator: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 MinKey
andMaxKey
compare 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$type
with-1
as in the following example:Example
Consider the following example operation sequence that demonstrates both type comparison and the special
MinKey
andMaxKey
values: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.