정의
$literal구문 분석 없이 값을 반환합니다. 집계 파이프라인이 표현식으로 해석할 수 있는 값에 사용됩니다.
$literal표현식 구문은 다음과 같습니다.{ $literal: <value> }
행동
가 <value> 표현식 인 경우 는 표현식 평가하지 않고 대신 구문 분석되지 않은 표현식$literal 반환합니다.
예시 | 결과 |
|---|---|
|
|
|
|
예시
$ 을 리터럴로 취급
표현식에서 달러 기호 $는 필드 경로로 평가됩니다. 즉, 필드에 대한 액세스를 제공합니다. 예를 들어 $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 }
값으로 새 필드 프로젝션 1
단계에서는 $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 } 표현식 값으로 설정하다 새 필드 반환합니다.editionNumber 1
db.books.aggregate( [ { $project: { "title": 1, "editionNumber": { $literal: 1 } } } ] )
이 연산을 수행하면 다음 문서가 생성됩니다.
{ "_id" : 1, "title" : "Dracula", "editionNumber" : 1 } { "_id" : 2, "title" : "The Little Prince", "editionNumber" : 1 }