sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB $toUpper

I MongoDB, $toUpper aggregeringspipeline-operatör konverterar en sträng till versaler och returnerar resultatet.

Exempel

Anta att vi har en samling som heter pets med följande dokument:

{ "_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 använda $toUpper operatorn för att konvertera dessa fält till versaler och returnera resultatet.

Här är ett exempel på hur du returnerar name och type fält med versaler:

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

Konvertera icke-strängar

Du kan använda $toUpper på värden som inte nödvändigtvis är strängar. Argumentet kan vara vilket uttryck som helst så länge det löser sig till en sträng.

Till exempel kan vi använda $toUpper för att konvertera weight fält till en versalsträng, även om det fältet bara innehåller siffror.

Exempel:

db.pets.aggregate(
  [
    {
      $project:
        { 
          name: { $toUpper: "$name" },
          type: { $toUpper: "$type" },
          weight: { $toUpper: "$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 att weight fältet konverterades till en sträng, eftersom det nu är omgivet av citattecken. Men med tanke på att det här fältet bara innehåller siffror, finns det ingen effekt med versaler – siffror har inte versaler och gemener, så vi kan inte se någon skillnad i förhållande till skiftläge.

Om vi ​​bara ville konvertera numret till en sträng kunde vi ha använt $toString operatorn eller till och med $convert operatör.


  1. MongoDB/Mongoose frågar vid ett specifikt datum?

  2. Kombinera fulltext med annat index

  3. Ändra åtkomst från MS Excel?

  4. Slaget om NoSQL-databaserna - Jämföra MongoDB &MSSQL:s NoSQL-funktioner