MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB $literal

W MongoDB $literal Operator potoku agregacji zwraca wartość bez parsowania.

Akceptuje każde poprawne wyrażenie i zwraca wyrażenie nieprzeanalizowane.

$literal Operator może być przydatny, gdy masz wartość, którą MongoDB może nieumyślnie zinterpretować jako wyrażenie, ale tego nie chcesz.

Na przykład, jeśli masz kwotę pieniężną zawierającą znak dolara, MongoDB może nieumyślnie zinterpretować ją jako nazwę pola. Możesz użyć $literal aby uniemożliwić MongoDB interpretację takich wyrażeń.

Przykład

Załóżmy, że mamy kolekcję o nazwie test z następującym dokumentem:

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

Oto przykład zastosowania $literal :

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

Wynik:

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

W tym przykładzie zwracamy wartość name pole za pomocą $name odnieść się do niego.

Zwracamy również wartość dosłowną $name , bez konieczności zinterpretowania go przez MongoDB jako name pole:

Przykład 2

Załóżmy, że nasza kolekcja zawiera następujący dokument:

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

Oto kolejny przykład użycia $literal :

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

Wynik:

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

W takim przypadku pierwsze zwrócone pole zawiera wynik $multiply operator przed a i b pola.

Drugie pole po prostu wyświetla wartość dosłowną, którą podaliśmy do $literal operatora.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoimport pliku JSON

  2. Jak ustawić limit czasu dla zapytania Mongoose?

  3. Rosnące znaczenie MongoDB w dziedzinie nauki o danych

  4. Zwrócić ograniczoną liczbę rekordów określonego typu, ale nieograniczoną liczbę innych rekordów?

  5. MongoDB, Mongoose:Jak znaleźć poddokument w znalezionym dokumencie?