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

MongoDB $toLower

I MongoDB er $toLower aggregeringspipeline-operatør konverterer en streng til små bogstaver og returnerer resultatet.

Eksempel

Antag, at vi har en samling kaldet pets med følgende dokumenter:

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

Vi kan bruge $toLower operatør for at konvertere disse felter til små bogstaver og returnere resultatet.

Her er et eksempel på returnering af name og type felter med små bogstaver:

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

Resultat:

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

I dette tilfælde var de fleste af tegnene små bogstaver til at begynde med, men det første tegn var store bogstaver. I alle tilfælde blev disse tegn konverteret til små bogstaver, og resultatet blev returneret.

Konvertering af ikke-strenge

Du kan bruge $toLower på værdier, der ikke nødvendigvis er strenge. Argumentet kan være et hvilket som helst udtryk, så længe det løses til en streng.

For eksempel kan vi bruge $toLower for at konvertere weight felt til en streng med små bogstaver, selvom det felt kun indeholder tal.

Eksempel:

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

Resultat:

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

Vi kan se, at weight felt blev konverteret til en streng, fordi det nu er omgivet af anførselstegn. Men da dette felt kun indeholder tal, er der ingen effekt med små bogstaver – tal har ikke store og små bogstaver, og vi kan derfor ikke se nogen forskel i forhold til store og små bogstaver.

Hvis vi blot ville konvertere tallet til en streng, kunne vi have brugt $toString operatoren eller endda $convert operatør.


  1. MongoDBs ydeevne på aggregeringsforespørgsler

  2. Mongoose-opdatering opdateres ikke:{ ok:0, n:0, nÆndret:0 }

  3. Mongoose forbindelse

  4. MongoDB:Opdater hvert dokument på ét felt