$type (BSON 型)
最終更新:2026-10-09
$type (BSON 型)
$type は、フィールドの値が指定した BSON 型であるドキュメントに一致します。`{ age: { $type: 'int' } }` は age が 32 ビット整数のドキュメントに一致します。型エイリアス(string、object、array、date、double など)または数値コード(1 = double、2 = string)を使えます。文字列「21」と数値の 21 は別の型です。よくある混乱ポイントです。
| カテゴリ | 要素と評価 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ <field>: { $type: <BSON type> } }
⚙️ パラメータ
| フィールド | 型をテストするドキュメントフィールド。 |
|---|---|
| BSON 型 | 型の別名またはコード(例: 'int'、'string'、'date'、'array')。 |
戻り値:一致するドキュメントのカーソル
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $type: age が整数のユーザー
// int は 32 ビット整数
db.users.find({ age: { $type: 'int' } })
// 複数型: int または double
db.users.find({ age: { $type: ['int', 'double'] } })
出力:
// age が int のユーザーを返す。2 つ目のクエリは int または double に一致
📌 注意事項
- 数値型は int、long、double、decimal に分かれている。ひとまとめにしないこと
- 文字列 '21' と数値 21 は別の型。$type は厳密
- エイリアスでもコードでも使える: 'date' はコード 9 と同じ
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Qよく使う $type エイリアスは?
Adouble、string、object、array、binData、objectId、bool、date、null、regex、int、long、decimal、timestamp などです。
Q日付型フィールドのクエリはどう書きますか?
A{ updatedAt: { $type: 'date' } } です。
Q$type は null に一致できますか?
Aはい。'null' はフィールド値が null のドキュメントに一致します(フィールドが存在する必要があります)。