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

MongoDB $toUpper

W MongoDB $toUpper Operator potoku agregacji konwertuje łańcuch na wielkie litery i zwraca wynik.

Przykład

Załóżmy, że mamy kolekcję o nazwie pets z następującymi dokumentami:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }

Możemy użyć $toUpper operator do konwersji tych pól na ciągi pisane wielkimi literami i zwrócenia wyniku.

Oto przykład zwracania name i type pola pisane wielkimi literami:

db.pets.aggregate(
  [
    {
      $project:
        { 
          name: { $toUpper: "$name" },
          type: { $toUpper: "$type" },
          weight: "$weight"
        }
    }
  ]
)

Wynik:

{ "_id" : 1, "name" : "WAG", "type" : "DOG", "weight" : 20 }
{ "_id" : 2, "name" : "BARK", "type" : "DOG", "weight" : 10 }
{ "_id" : 3, "name" : "MEOW", "type" : "CAT", "weight" : 7 }

Konwersja nieciągów

Możesz użyć $toUpper na wartościach, które niekoniecznie są ciągami. Argument może być dowolnym wyrażeniem, o ile jest wynikiem łańcucha.

Na przykład możemy użyć $toUpper przekonwertować weight z pola na łańcuch pisany wielkimi literami, nawet jeśli to pole zawiera tylko liczby.

Przykład:

db.pets.aggregate(
  [
    {
      $project:
        { 
          name: { $toUpper: "$name" },
          type: { $toUpper: "$type" },
          weight: { $toUpper: "$weight" }
        }
    }
  ]
)

Wynik:

{ "_id" : 1, "name" : "WAG", "type" : "DOG", "weight" : "20" }
{ "_id" : 2, "name" : "BARK", "type" : "DOG", "weight" : "10" }
{ "_id" : 3, "name" : "MEOW", "type" : "CAT", "weight" : "7" }

Widzimy, że weight pole zostało przekonwertowane na ciąg znaków, ponieważ jest teraz otoczone cudzysłowami. Jednak biorąc pod uwagę, że to pole zawiera tylko liczby, nie ma efektu wielkich liter – liczby nie mają wielkich i małych liter, więc nie widzimy żadnej różnicy w odniesieniu do wielkości liter.

Gdybyśmy chcieli po prostu przekonwertować liczbę na ciąg, moglibyśmy użyć $toString operator lub nawet $convert operatora.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak połączyć tablice z wielu dokumentów w MongoDB?

  2. Mongoose i wiele baz danych w pojedynczym projekcie node.js

  3. Zagnieżdżone zapytanie tablicowe MongoDB

  4. Jak sprawdzić poprawność członków pola tablicowego?

  5. dokument zwrotu z ostatnim poddokumentem tylko w agregacie mongodb