Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

$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> 표현식의 값을 평가하고 반환합니다.

인수는 유효한 표현식 이면 모두 가능합니다. 표현식에 대한 자세한 내용은 표현식 연산자를 참조하세요.

다음도 참조하세요.

다음 예시에서는 다음 문서와 함께 inventory 컬렉션을 사용합니다.

{ "_id" : 1, "item" : "abc1", qty: 300 }
{ "_id" : 2, "item" : "abc2", qty: 200 }
{ "_id" : 3, "item" : "xyz1", qty: 250 }

다음 집계 작업은 $cond 표현식을 사용하여 qty 값이 250 보다 크거나 같으면 discount 값을 30으로, qty 값이 250보다 작으면 20으로 설정합니다.

db.inventory.aggregate(
[
{
$project:
{
item: 1,
discount:
{
$cond: { if: { $gte: [ "$qty", 250 ] }, then: 30, else: 20 }
}
}
}
]
)

이 연산은 다음과 같은 결과를 반환합니다.

{ "_id" : 1, "item" : "abc1", "discount" : 30 }
{ "_id" : 2, "item" : "abc2", "discount" : 20 }
{ "_id" : 3, "item" : "xyz1", "discount" : 30 }

다음 작업은 $cond 표현식의 배열 구문을 사용하여 동일한 결과를 반환합니다.

db.inventory.aggregate(
[
{
$project:
{
item: 1,
discount:
{
$cond: [ { $gte: [ "$qty", 250 ] }, 30, 20 ]
}
}
}
]
)

돌아가기

$concatArrays

이 페이지의 내용