$gt (より大きい)

最終更新:2026-10-09

$gt (より大きい)

$gt は、フィールドの値が指定値より厳密に大きいドキュメントを選択します。`{ age: { $gt: 21 } }` は 21 歳より上のユーザーに一致し、ちょうど 21 は含みません。価格の下限、日付の絞り込み、スコアの閾値など範囲クエリに使います。$gte と違い境界値を含みません。文字列は辞書順、日付は時系列順に比較されます。

カテゴリ比較
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ <field>: { $gt: <value> } }

⚙️ パラメータ

フィールドマッチ対象のドキュメントフィールド。ドット記法でネストしたフィールドにアクセスします。
値比較の境界値。境界自体は除外されます。

戻り値:一致するドキュメントのカーソル

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $gt: 21 歳より上のユーザーを検索(21 は含まない)
db.users.find({ age: { $gt: 21 } })

// 価格の下限 + 日付範囲
db.products.find({ price: { $gt: 100 } })
db.orders.find({ createdAt: { $gt: new Date('2026-09-01') } })

出力:

// age が 21 超のユーザー、price が 100 超の商品、9 月 1 日以降の注文を返す

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$gt と $gte の違いは?
A$gt は厳密に大きい(境界値を含まない)、$gte は以上(境界値を含む)です。21 歳より上なら $gt: 21、21 歳以上なら $gte: 21 を使います。
Q$gt で文字列や日付を比較できますか?
Aはい。文字列は辞書順に比較されます。日付は new Date() でラップすると時系列順に比較され、生の文字列のままではテキストとして比較されます。
Q価格が 10 から 20 の間のクエリはどう書きますか?
A1 つのフィールドに複合条件を書きます: { price: { $gt: 10, $lt: 20 } }。これは開区間になります。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%