sql >> Database >  >> NoSQL >> MongoDB

MongoDB $toUpper

In MongoDB is de $toUpper aggregatiepijplijnoperator converteert een tekenreeks naar hoofdletters 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 $toUpper . gebruiken operator om die velden om te zetten in hoofdletters en het resultaat te retourneren.

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

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

Niet-strings converteren

U kunt $toUpper . gebruiken op waarden die niet noodzakelijk strings zijn. Het argument kan elke uitdrukking zijn, zolang het maar oplost in een string.

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

Voorbeeld:

db.pets.aggregate(
  [
    {
      $project:
        { 
          name: { $toUpper: "$name" },
          type: { $toUpper: "$type" },
          weight: { $toUpper: "$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 van hoofdletters - 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. MongoDB-aggregatie met $ lookup omvat (of projecteert) alleen enkele velden die moeten worden geretourneerd uit de query

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

  3. Meteor:onverwachte mongo-exitcode 100

  4. C# - MongoDB - Een element in een genest document bijwerken