Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

$literal(集計)

項目一覧

  • 定義
  • 動作
$literal

解析せずに値を返します。 集計パイプラインが式として解釈できる値には、 を使用します。

$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"を含む string を定数値として扱います。

storeInventory コレクションには、次のドキュメントがあります。

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フィールドの値が string と等しいかどうかを示すブール値を持つcostsOneDollar "$1"名前のフィールドがプロジェクションされます。

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

$projectステージでは、式<field>: 1を使用して出力に<field>を含めます。 次の例では、 $literalを使用して、 1の値に設定された新しいフィールドを返します。

books コレクションには、次のドキュメントがあります。

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 }

戻る

$let

項目一覧