sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB $literal

I MongoDB er $literal aggregeringspipeline-operator returnerer en værdi uden parsing.

Det accepterer ethvert gyldigt udtryk og returnerer det uparserede udtryk.

$literal operator kan være nyttig, når du har en værdi, som MongoDB utilsigtet kunne fortolke som et udtryk, men du ikke vil have det.

For eksempel, hvis du har et pengebeløb, der inkluderer et dollartegn, kan MongoDB utilsigtet fortolke det som et feltnavn. Du kan bruge $literal for at forhindre MongoDB i at fortolke sådanne udtryk.

Eksempel

Antag, at vi har en samling kaldet test med følgende dokument:

{ "_id" : 1, "name" : "Homer" }

Her er et eksempel på anvendelse af $literal :

db.test.aggregate(
  [
    { $match: { _id: { $in: [ 1 ] } } },
    {
      $project:
        { 
          _id: 0,
          interpreted: "$name",
          literal: { $literal: "$name" }
        }
    }
  ]
)

Resultat:

{ "interpreted" : "Homer", "literal" : "$name" }

I dette eksempel returnerer vi værdien af ​​name felt ved at bruge $name at henvise til det.

Vi returnerer også den bogstavelige værdi $name , uden at MongoDB fortolker det til at betyde name felt:

Eksempel 2

Antag, at vores samling indeholder følgende dokument:

{ "_id" : 2, "a" : 10, "b" : 5 }

Her er endnu et eksempel på brug af $literal :

db.test.aggregate(
  [
    { $match: { _id: { $in: [ 2 ] } } },
    {
      $project:
        { 
          _id: 0,
          interpreted: { $multiply: [ "$a", "$b" ] },
          literal: { $literal: { $multiply: [ "$a", "$b" ] } }
        }
    }
  ]
)

Resultat:

{ "interpreted" : 50, "literal" : { "$multiply" : [ "$a", "$b" ] } }

I dette tilfælde indeholder det første returnerede felt resultatet af $multiply operator mod a og b felter.

Det andet felt udsender simpelthen den bogstavelige værdi, som vi har givet til $literal operatør.


  1. Redis Out of Memory-undtagelser, men har stadig masser af hukommelse

  2. Faktorer at overveje, når du vælger MongoDB til Big Data-applikationer

  3. Sådan sletter du n-te element i array i mongodb

  4. hvordan får man alle nøgler og værdier i redis i javascript?