$type (애그리게이션)
정의
$type
버전 3.4에 새로 추가되었습니다.
인수의 BSON types 를 지정하는 문자열을 반환합니다.
$type
에는 다음과 같은 연산자 표현식 구문이 있습니다.{ $type: <expression> } 인수는 유효한 표현식일 수 있습니다.
행동
$type
$type
쿼리 연산자는 배열 요소를 BSON 유형에 따라 일치시키는 것과 달리 $type
집계 연산자는 배열 요소를 검사하지 않습니다. 대신 배열을 인수로 전달하면 $type
집계 연산자는 인수의 유형(예: "array"
)을 반환합니다.
인수가 입력 문서에 누락된 필드인 경우 $type
은 문자열 "missing"
을 반환합니다.
다음 테이블은 몇 가지 일반적인 표현식 유형의 $type
출력을 보여 줍니다.
예제 | 결과 |
---|---|
{ $type: "a" } | "string" |
{ $type: /a/ } | "regex" |
{ $type: 1 } | "double" |
{ $type: NumberLong(627) } | "long" |
{ $type: { x: 1 } } | "object" |
{ $type: [ [ 1, 2, 3 ] ] } | "array" |
참고
[ 1, 2, 3 ]
[ 1, 2, 3 ]
0}과1, 2, 3
같은 리터럴 배열의 경우, 표현식을 바깥쪽 배열 괄호로 묶어 MongoDB가 을 3개의 인수( )가 있는 인수 목록으로 구문 분석하지 못하도록 합니다. 배열 [ 1, 2, 3 ]
를 $literal
표현식으로 래핑해도 동일한 결과를 얻을 수 있습니다.
자세한 내용은 연산자 표현식 구문 형식을 참조하세요.
사용 가능한 유형
유형 | 번호 | 별명 | 참고 사항 |
---|---|---|---|
더블 | 1 | "double" | |
문자열 | 2 | "문자열" | |
개체 | 3 | "객체" | |
배열 | 4 | "배열" | |
이진 데이터 | 5 | "binData" | |
정의되지 않음 | 6 | "정의되지 않음" | 더 이상 사용되지 않습니다. |
ObjectId | 7 | "objectId" | |
부울 | 8 | "bool" | |
날짜 | 9 | '날짜' | |
Null | 10 | "null" | |
정규 표현식 | 11 | "정규식" | |
DB포인터 | 12 | "dbPointer" | 더 이상 사용되지 않습니다. |
JavaScript | 13 | "자바 스크립트" | |
기호 | 14 | "기호" | 더 이상 사용되지 않습니다. |
32비트 정수 | 16 | "in" | |
타임스탬프 | 17 | "타임스탬프" | |
64비트 정수 | 18 | "긴" | |
Decimal128 | 19 | "십진수" | |
최소 키 | - 1 | " 밍키 " | |
최대 키 | 127 | "최대 키" |
인수가 입력 문서에 누락된 필드인 경우 $type
은 문자열 "missing"
을 반환합니다.
예제
이 예에서는 coll
라는 이름의 컬렉션과 다음 문서를사용합니다:
{ _id: 0, a : 8 } { _id: 1, a : [ 41.63, 88.19 ] } { _id: 2, a : { a : "apple", b : "banana", c: "carrot" } } { _id: 3, a : "caribou" } { _id: 4, a : NumberLong(71) } { _id: 5 }
다음 집계 작업에서는 $type
연산자를 사용하여 모든 문서에 대한 필드 a
유형을 $project
단계의 일부로 표시합니다.
db.coll.aggregate([{ $project: { a : { $type: "$a" } } }])
이 연산은 다음을 반환합니다:
{ _id: 0, "a" : "double" } { _id: 1, "a" : "array" } { _id: 2, "a" : "object" } { _id: 3, "a" : "string" } { _id: 4, "a" : "long" } { _id: 5, "a" : "missing" }