Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

$type(集計)

項目一覧

  • 定義
  • 動作
$type

バージョン 3.4 で追加

引数の BSON 型 を指定する文字列を返します。

$typeには次の演算子式の構文があります。

{ $type: <expression> }

引数には任意の有効なを使用できます。

Tip

以下も参照してください。

  • $isNumber - 引数が数値であるかどうかをチェックします。

  • $type (Query) - BSON 型に基づいてフィールドをフィルタリングします。

BSON 型に基づいて配列要素を照合する$typeクエリ演算子とは異なり、 $type集計演算子は配列要素を検査しません。 代わりに、引数として配列を渡されると、 $type集計演算子は引数の型、つまり"array"を返します。

引数が入力ドキュメントに欠落しているフィールドである場合、 $typeは string "missing"を返します。

次の表は、いくつかの一般的なタイプの式に対する$typeの出力を示しています。

結果
{ $type: "a" }
"string"
{ $type: /a/ }
"regex"
{ $type: 1 }
"double"
{ $type: NumberLong(627) }
"long"
{ $type: { x: 1 } }
"object"
{ $type: [ [ 1, 2, 3 ] ] }
"array"

注意

リテラル配列、たとえば [ 1, 2, 3 ] の場合、MongoDB により [ 1, 2, 3 ] が 3 つの引数(1, 2, 3)を持つ引数リストとして解析されないようにするには、角括弧で式全体を囲みます。また、配列 [ 1, 2, 3 ]$literal 式でラップしても、同じ結果が得られます。

詳しくは、「演算子式の構文形式」を参照してください。

タイプ
番号
エイリアス
ノート
Double
1
"double"
文字列
2
"string"
オブジェクト
3
"object"
配列
4
"array"
バイナリ データ
5
"binData"
未定義
6
"undefined"
非推奨。
ObjectId
7
"objectId"
ブール値
8
"bool"
日付
9
"date"
null
10
"null"
正規表現
11
"regex"
DBポインタ
12
"dbPointer"
非推奨。
JavaScript
13
"javascript"
シンボル
14
"symbol"
非推奨。
32 ビット整数
16
"int"
タイムスタンプ
17
"timestamp"
64 ビット整数
18
"long"
Decimal128
19
"decimal"
Min key
-1
"minKey"
Max key
127
"maxKey"

引数が入力ドキュメントに欠落しているフィールドである場合、 $typeは string "missing"を返します。

この例では、次のドキュメントを含む coll という名前のコレクションを使用します。

{ _id: 0, a : 8 }
{ _id: 1, a : [ 41.63, 88.19 ] }
{ _id: 2, a : { a : "apple", b : "banana", c: "carrot" } }
{ _id: 3, a : "caribou" }
{ _id: 4, a : NumberLong(71) }
{ _id: 5 }

次の集計操作では、$type 演算子を使用して、すべてのドキュメントのフィールド a の型を $project ステージの一部として表示します。

db.coll.aggregate([{
$project: {
a : { $type: "$a" }
}
}])

この操作では、以下を返します。

{ _id: 0, "a" : "double" }
{ _id: 1, "a" : "array" }
{ _id: 2, "a" : "object" }
{ _id: 3, "a" : "string" }
{ _id: 4, "a" : "long" }
{ _id: 5, "a" : "missing" }

戻る

$trunc

項目一覧