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

MongoDB $toLower

In MongoDB, il $toLower l'operatore della pipeline di aggregazione converte una stringa in minuscolo e restituisce il risultato.

Esempio

Supponiamo di avere una collezione chiamata pets con i seguenti documenti:

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

Possiamo usare il $toLower per convertire quei campi in stringhe minuscole e restituire il risultato.

Ecco un esempio di restituzione del name e type campi in minuscolo:

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

Risultato:

{ "_id" : 1, "name" : "wag", "type" : "dog", "weight" : 20 }
{ "_id" : 2, "name" : "bark", "type" : "dog", "weight" : 10 }
{ "_id" : 3, "name" : "meow", "type" : "cat", "weight" : 7 }

In questo caso, la maggior parte dei caratteri era minuscola all'inizio, ma il primo carattere era maiuscolo. In tutti i casi, quei caratteri sono stati convertiti in minuscolo e il risultato è stato restituito.

Conversione di non stringhe

Puoi usare $toLower su valori che non sono necessariamente stringhe. L'argomento può essere qualsiasi espressione purché si risolva in una stringa.

Ad esempio, possiamo usare $toLower per convertire il weight campo in una stringa minuscola, anche se quel campo contiene solo numeri.

Esempio:

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

Risultato:

{ "_id" : 1, "name" : "wag", "type" : "dog", "weight" : "20" }
{ "_id" : 2, "name" : "bark", "type" : "dog", "weight" : "10" }
{ "_id" : 3, "name" : "meow", "type" : "cat", "weight" : "7" }

Possiamo vedere che il weight campo è stato convertito in una stringa, perché ora è racchiuso tra virgolette. Tuttavia, dato che questo campo contiene solo numeri, non c'è alcun effetto minuscolo:i numeri non hanno maiuscolo e minuscolo, quindi non possiamo vedere alcuna differenza rispetto alle maiuscole.

Se volessimo semplicemente convertire il numero in una stringa, avremmo potuto usare $toString o anche l'operatore $convert operatore.