문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

$bitAnd(애그리게이션)

이 페이지의 내용

  • 정의
  • 구문
  • 행동
  • 예제
  • 자세히 알아보기

버전 6.3에 추가.

$bitAnd

and int 1} 또는 long 값의 배열에 대한 비트 단위 연산 결과를 반환합니다.

$bitAnd 연산자의 구문은 다음과 같습니다.

{ $bitAnd: { [ <expression1>, <expression2>, ... ] }

피연산자에 정수와 긴 값이 모두 포함된 경우 MongoDB는 계산된 정수 결과를 부호 확장하고 긴 값을 반환합니다. 그렇지 않고 피연산자에 정수만 있거나 long만 포함된 경우 MongoDB는 해당 값 유형으로 결과를 반환합니다.

참고

mongosh 의 모든 숫자는 정수가 아닌 더블입니다. mongosh 에서 정수를 지정하려면 NumberInt() 또는 NumberLong() 생성자를 사용합니다. 자세히 알아보려면 Int32 또는 Long을 참조하세요.

MongoDB 드라이버가 숫자 값을 처리하는 방법을 알아보려면 드라이버 설명서를 참조하세요.

배열의 인수가 문자열, 이중 또는 십진수와 같은 다른 데이터 유형인 경우 MongoDB는 오류를 반환합니다.

인수가 빈 배열인 경우 연산은 NumberInt(-1) 을 반환합니다.

피연산자 중 null 에 해당하는 피연산자가 있으면 연산은 null 을 반환합니다.

이 페이지의 예제에서는 다음 문서가 포함된 switches collection을 사용합니다.

db.switches.insertMany( [
{ _id: 0, a: NumberInt(0), b: NumberInt(127) },
{ _id: 1, a: NumberInt(2), b: NumberInt(3) },
{ _id: 2, a: NumberInt(3), b: NumberInt(5) }
] )

다음 애그리게이션은 단계에서 $bitAnd 연산자를 $project 사용합니다.

db.switches.aggregate( [
{
$project: {
result: {
$bitAnd: [ "$a", "$b" ]
}
}
}
])

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

[
{ _id: 0, result: 0 }
{ _id: 1, result: 2 }
{ _id: 2, result: 1 }
]

다음 애그리게이션은 단계에서 $bitAnd 연산자를 $project 사용합니다.

db.switches.aggregate( [
{
$project: {
result: {
$bitAnd: [ "$a", NumberLong("63") ]
}
}
}
])

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

[
{ _id: 0, result: NumberLong("0") }
{ _id: 1, result: NumberLong("2") }
{ _id: 2, result: NumberLong("3") }
]
← 이진 크기(집계)