$strcasecmp (大文字小文字を無視した比較)

最終更新:2026-10-09

$strcasecmp (大文字小文字を無視した比較)

$strcasecmp は 2 つの文字列を大文字小文字を無視して比較し、-1・0・1 を返します。ソートやグループ化、条件分岐に便利です。文字列のみを受け付け、他の型はエラーになります。比較は自然言語の照合順序ではなくコードポイント順で行われ、中国語は Unicode コードポイント順になり、ピンイン順や辞書順とは異なる場合があります。いずれかの引数が null なら結果は null です。

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

📝 構文

{ $strcasecmp: [ <string-expression1>, <string-expression2> ] }

⚙️ パラメータ

文字列1必須。最初の文字列式。
文字列2必須。2番目の文字列式。

戻り値:比較結果: -1、0、または 1。いずれかの引数が null の場合は null。

▶ 例

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

// $strcasecmp: alice と大文字小文字を無視して比較
 db.users.aggregate([
  { $project: { cmp: { $strcasecmp: [ '$name', 'alice' ] } } }
])

出力:

{ "_id": 1, "cmp": 0 }
{ "_id": 2, "cmp": 1 }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q0 は何を意味しますか?
A大文字小文字を無視して 2 つの文字列が等しいことを意味します。
Q中国語でも動作しますか?
Aはい。ただしコードポイント順の比較であり、ピンイン順や辞書順ではありません。
Q$cmp との違いは?
A$cmp はバイナリ順で大文字小文字を区別して比較します。$strcasecmp は大文字小文字を無視します。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%