AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

$cond(式演算子)

$cond

ブール式を評価して、指定された2つの戻り値のうちの1つを返します。

次の環境でホストされる配置には $cond を使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

$cond 式は次の 2 つの構文のいずれかをとります。

{ $cond: { if: <boolean-expression>, then: <true-case>, else: <false-case> } }

または:

{ $cond: [ <boolean-expression>, <true-case>, <false-case> ] }

$cond はいずれの構文でも 3 つのすべての引数(if-then-else)を必要とします。

<boolean-expression> が true と評価された場合、$cond は<true-case> 式の値を評価して返します。それ以外の場合、$cond は <false-case> 式の値を評価して返します。

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

このページの例では、sample_mflix データセット のデータを使用しています。自己管理型 MongoDB 配置にこのデータセットをロードする方法の詳細については、「サンプル データセットのロード」を参照してください。サンプル データベースに何らかの変更を加えた場合は、今ページの例を実行するには、データベースを削除して再作成する必要がある可能性があります。

次の集計操作では、$cond式を使用して各映画にインストール価格を割り当てます。この操作では、imdb.ratingが 9 以上の映画を 5.99 で価格付けします。この操作では他のすべての映画の価格は 3.99 です。

db.movies.aggregate( [ { $match: { runtime: { $gt: 1000 } } }, { $project: { title: 1, rentalPrice: { $cond: { if: { $gte: [ "$imdb.rating", 9 ] }, then: 5.99, else: 3.99 } } } }] )
[ { _id: ..., title: 'Baseball', rentalPrice: 5.99 }, { _id: ..., title: 'Centennial', rentalPrice: 3.99 }]

次の操作では、$cond 式の配列構文を使用して、同じ結果を返します。

db.movies.aggregate( [ { $match: { runtime: { $gt: 1000 } } }, { $project: { title: 1, rentalPrice: { $cond: [ { $gte: [ "$imdb.rating", 9 ] }, 5.99, 3.99 ] } } }] )
このページを評価