$bitAnd(집계)
정의
버전 6.3에 추가.
구문
$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) } ] )
두 개의 정수가 있는 비트 AND
단위
다음 집계 $bitAnd
은 단계에서 연산자 를 $project
사용합니다.
db.switches.aggregate( [ { $project: { result: { $bitAnd: [ "$a", "$b" ] } } } ])
이 연산은 다음과 같은 결과를 반환합니다.
[ { _id: 0, result: 0 } { _id: 1, result: 2 } { _id: 2, result: 1 } ]
Long과 Integer가 있는 비트 AND
단위
다음 애그리게이션은 단계에서 $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") } ]