Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

$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> 式の値を評価して返します。

引数には任意の有効なを使用できます。 式の詳細については、「式 」を参照してください。

Tip

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

次の集計操作では、$cond式を使用して各映画にインストール価格を割り当てます。この操作では、imdb.rating9 以上の映画を 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
]
}
}
}
] )

戻る

$concatArrays

項目一覧