문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

$literal (애그리게이션)

이 페이지의 내용

  • 정의
  • 행동
  • 예제
$literal

구문 분석 없이 값을 반환합니다. aggregation pipeline이 표현식으로 해석할 수 있는 값에 사용됩니다.

$literal 표현식의 구문은 다음과 같습니다.

{ $literal: <value> }

<value>표현식 인 경우 $literal 는 표현식을 평가하지 않고 대신 구문 분석되지 않은 표현식을 반환합니다.

예제
결과
{ $literal: { $add: [ 2, 3 ] } }
{ "$add" : [ 2, 3 ] }
{ $literal: { $literal: 1 } }
{ "$literal" : 1 }

표현식에서 달러 기호 $는 필드 경로로 평가됩니다. 즉, 필드에 대한 액세스를 제공합니다. 예를 들어 $eq 표현식 $eq: [ "$price", "$1" ]은 문서에서 이름이 price인 필드에 있는 값과 이름이 1인 필드에 있는 값 간에 동일성 검사를 수행합니다.

다음 예시에서는 $literal 표현식을 사용하여 달러 기호("$1")가 포함된 문자열을 상수 값으로 처리합니다.

다음 문서가 포함된 storeInventory collection입니다:

db.storeInventory.insertMany( [
{ "_id" : 1, "item" : "napkins", price: "$2.50" },
{ "_id" : 2, "item" : "coffee", price: "1" },
{ "_id" : 3, "item" : "soap", price: "$1" }
] )
db.storeInventory.aggregate( [
{ $project: { costsOneDollar: { $eq: [ "$price", { $literal: "$1" } ] } } }
] )

이 연산은 price 필드의 값이 문자열 "$1"와 같은지 여부를 나타내는 부울 값을 포함하는 costsOneDollar 필드를 프로젝션합니다.

{ "_id" : 1, "costsOneDollar" : false }
{ "_id" : 2, "costsOneDollar" : false }
{ "_id" : 3, "costsOneDollar" : true }

$project 단계는 <field>: 1 표현식을 사용하여 출력에 <field>를 포함합니다. 다음 예시에서는 $literal을 사용하여 1 값으로 설정된 새 필드를 반환합니다.

다음 문서가 포함된 books collection입니다:

db.books.insertMany([
{ "_id" : 1, "title" : "Dracula", "condition": "new" },
{ "_id" : 2, "title" : "The Little Prince", "condition": "new" }
])

{ $literal: 1 } 표현식은 1 값으로 설정된 새 editionNumber 필드를 반환합니다.

db.books.aggregate( [
{ $project: { "title": 1, "editionNumber": { $literal: 1 } } }
] )

이 연산을 수행하면 다음 문서가 생성됩니다.

{ "_id" : 1, "title" : "Dracula", "editionNumber" : 1 }
{ "_id" : 2, "title" : "The Little Prince", "editionNumber" : 1 }
← 선형 채우기(집계)

이 페이지의 내용