Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

$toString (표현식 연산자)

$toString

값을 문자열로 변환합니다. 값을 문자열로 변환할 수 없는 경우 $toString 오류가 발생합니다. 값이 null이거나 누락된 경우 $toString은 null을 반환합니다.

$toString 의 구문은 다음과 같습니다:

{
$toString: <expression>
}

$toString는 유효한 표현식을 사용합니다.

$toString는 다음 $convert 표현식의 약칭입니다.

{ $convert: { input: <expression>, to: "string" } }

  • $convert

  • $dateToString

다음 표에는 문자열로 변환할 수 있는 입력 유형이 나열되어 있습니다.

입력 유형
행동

배열

를 문자열로 Array 반환합니다.

버전 8.3에 추가 되었습니다.

BinData

BinData 가 UUID인 경우 UUID를 문자열로 반환합니다. 그렇지 않으면 기본64 인코딩된 string 값을 반환합니다.

부울

부울 값을 문자열로 반환합니다.

날짜

를 문자열로 Date 반환합니다.

10진수

Decimal 값을 문자열로 반환합니다.

Double

Double 값을 문자열로 반환합니다.

Integer

Integer 값을 문자열로 반환합니다.

Long

Long 값을 문자열로 반환합니다.

최대 키

를 문자열로 MaxKey 반환합니다.

버전 8.3에 추가 되었습니다.

최소 키

를 문자열로 MinKey 반환합니다.

버전 8.3에 추가 되었습니다.

객체

객체 를 문자열로 반환합니다.

버전 8.3에 추가 되었습니다.

ObjectId

ObjectId 값을 16진수 문자열로 반환합니다.

정규 표현식

를 문자열로 Regular Expression 반환합니다.

버전 8.3에 추가 되었습니다.

문자열

작동하지 않습니다. 문자열 값을 반환합니다.

타임스탬프

를 문자열로 Timestamp 반환합니다.

버전 8.3에 추가 되었습니다.

이외의 기본 문자열을 변환하려면 10 $convertbase 옵션과 함께 사용합니다.

다음 표에는 문자열로 변환하는 몇 가지 예가 나와 있습니다:

예시
결과

{ $toString: true }

"true"

{ $toString: false }

"false"

{ $toString: 2.5 }

"2.5"

{ $toString: Int32(2) }

"2"

{ $toString: Long(1000) }

"1000"

{ $toString: ObjectId("5ab9c3da31c2ab715d421285") }

"5ab9c3da31c2ab715d421285"

{ $toString: ISODate("2018-03-27T16:58:51.538Z") }

"2018-03-27T16:58:51.538Z"

{ $toString: BinData(4, "hn3f") }

"hn3f"

{ $toString: /^ABC/i }

"/^ABC/i"

버전 8.3에 추가 되었습니다.

{ $toString: new Timestamp(1565545664, 1) }

"Timestamp(1565545664, 1)"

버전 8.3에 추가 되었습니다.

{ $toString: [["pizza", {type: "cheese"}]] }

"[\"pizza\",{\"type\":\"cheese\"}]"

버전 8.3에 추가 되었습니다.

{ $toString: {pizza: {type: "cheese"}} }

"{\"pizza\":{\"type\":\"cheese\"}}"

버전 8.3에 추가 되었습니다.

{ $toString: MinKey }

"MinKey"

버전 8.3에 추가 되었습니다.

{ $toString: MaxKey }

"MaxKey"

버전 8.3에 추가 되었습니다.

다음 문서를 사용하여 컬렉션 orders를 생성합니다.

db.orders.insertMany( [
{ _id: 1, item: "apple", qty: 5, zipcode: 93445 },
{ _id: 2, item: "almonds", qty: 2, zipcode: "12345-0030" },
{ _id: 3, item: "peaches", qty: 5, zipcode: 12345 },
] )

orders 컬렉션에 대한 다음 집계 작업은 문자열 값을 기준으로 정렬하기 전에 zipcode를 문자열로 변환합니다.

// Define stage to add convertedZipCode field with the converted zipcode value
zipConversionStage = {
$addFields: {
convertedZipCode: { $toString: "$zipcode" }
}
};
// Define stage to sort documents by the converted zipcode
sortStage = {
$sort: { "convertedZipCode": 1 }
};
db.orders.aggregate( [
zipConversionStage,
sortStage
] )

이 작업은 다음 문서를 반환합니다.

{
_id: 3,
item: 'peaches',
qty: 5,
zipcode: 12345,
convertedZipCode: '12345'
},
{
_id: 2,
item: 'almonds',
qty: 2,
zipcode: '12345-0030',
convertedZipCode: '12345-0030'
},
{
_id: 1,
item: 'apple',
qty: 5,
zipcode: 93445,
convertedZipCode: '93445'
}

참고

변환 작업에 오류가 발생하면 집계 작업이 중지되고 오류가 발생합니다. 이 동작을 재정의하려면 $convert 를 대신 사용하세요.

돌아가기

topN

이 페이지의 내용