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

부울 표현식을 평가해 지정된 두 반환 표현식 중 하나를 반환합니다.

다음 환경에서 호스팅되는 배포에 $cond 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

  • MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전

  • MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전

$cond 표현식에는 다음 두 가지 구문 중 하나가 있습니다.

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

또는:

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

$cond에는 두 구문에 대해 세 개의 인수(if-then-else)가 모두 필요합니다.

<boolean-expression> 이(가) true(으)로 평가되면 $cond은(는) <true-case> 표현식의 값을 평가하고 반환합니다. 그렇지 않으면 $cond(이)가 <false-case> 표현식의 값을 평가하고 반환합니다.

인수는 유효한 표현식 이면 무엇이든 가능합니다. 표현식에 대한 자세한 내용은 표현식을 참조하세요 .

이 페이지의 예제에서는 sample_mflix 샘플 데이터 세트 의 데이터를 사용합니다. 이 데이터 세트를 자체 관리형 MongoDB deployment 에 로드하는 방법에 대한 자세한 내용은 샘플 데이터 세트 로드를 참조하세요. 샘플 데이터베이스를 수정한 경우 이 페이지의 예제를 실행 하려면 데이터베이스를 삭제하고 다시 만들어야 할 수 있습니다.

다음 집계 작업에서는 $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
]
}
}
}
] )

돌아가기

$concatArrays

이 페이지의 내용