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

MongoDB $toLower

W MongoDB $toLower Operator potoku agregacji konwertuje łańcuch na małe 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ć $toLower operatora, aby zamienić te pola na ciągi pisane małymi literami i zwrócić wynik.

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

db.pets.aggregate(
  [
    {
      $project:
        { 
          name: { $toLower: "$name" },
          type: { $toLower: "$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 }

W tym przypadku większość znaków była na początku małymi, ale pierwszy znak był wielkimi. We wszystkich przypadkach te znaki zostały zamienione na małe i zwrócono wynik.

Konwersja nieciągów

Możesz użyć $toLower na wartościach, które niekoniecznie są ciągami. Argumentem może być dowolne wyrażenie, o ile jest tłumaczone na łańcuch.

Na przykład możemy użyć $toLower przekonwertować weight pole na ciąg z małymi literami, nawet jeśli to pole zawiera tylko liczby.

Przykład:

db.pets.aggregate(
  [
    {
      $project:
        { 
          name: { $toLower: "$name" },
          type: { $toLower: "$type" },
          weight: { $toLower: "$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 małych 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. Uruchamianie MongoDB z Ops Manager

  2. MongoDB $currentDate

  3. Jak mogę sprawdzić, czy pole istnieje, czy nie w MongoDB?

  4. Zapisywanie tablicy numpy w mongodb

  5. Dodaj nowe pole do każdego dokumentu w kolekcji MongoDB