sql >> Database >  >> NoSQL >> MongoDB

MongoDB $toLower

In MongoDB is de $toLower aggregatiepijplijnoperator converteert een tekenreeks naar kleine letters en retourneert het resultaat.

Voorbeeld

Stel dat we een verzameling hebben met de naam pets met de volgende documenten:

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

We kunnen de $toLower . gebruiken operator om die velden om te zetten naar tekenreeksen in kleine letters en het resultaat te retourneren.

Hier is een voorbeeld van het retourneren van de name en type velden in kleine letters:

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

Resultaat:

{ "_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 dit geval waren de meeste tekens in het begin kleine letters, maar het eerste teken was hoofdletter. In alle gevallen werden die tekens omgezet in kleine letters en werd het resultaat geretourneerd.

Niet-strings converteren

U kunt $toLower . gebruiken op waarden die niet noodzakelijk strings zijn. Het argument kan elke uitdrukking zijn, zolang het maar wordt omgezet in een tekenreeks.

We kunnen bijvoorbeeld $toLower . gebruiken om het weight om te rekenen veld naar een kleine tekenreeks, ook al bevat dat veld alleen cijfers.

Voorbeeld:

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

Resultaat:

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

We kunnen zien dat het weight veld is geconverteerd naar een tekenreeks, omdat het nu tussen aanhalingstekens staat. Aangezien dit veld echter alleen cijfers bevat, is er geen effect in kleine letters - cijfers hebben geen hoofdletters en kleine letters, en dus kunnen we geen verschil zien met betrekking tot hoofdletters.

Als we het getal eenvoudig naar een tekenreeks wilden converteren, hadden we de $toString . kunnen gebruiken operator of zelfs de $convert telefoniste.


  1. DataFrame naar RDD [(String, String)] conversie

  2. Update meerdere elementen in een array in mongodb

  3. Controleer het bestaan ​​van verzamelingen in MongoDB

  4. Hoofdletterongevoelig sorteren in MongoDB