Mongodb: hoe de lengte van een string te vinden


U kunt de volgende methoden gebruiken om de lengte van een tekenreeks in MongoDB te vinden en die tekenreekslengte in query’s te gebruiken:

Methode 1: Zoek de lengte van de ketting

 db.myCollection.aggregate([
  { $project : {
        "name": 1,
        "length": { $strLenCP : " $name " }
  }}
])

Methode 2: Vind documenten waarvan de string groter is dan een bepaalde lengte

 db.myCollection.find({ 
    "name": { $exists : true },
    $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

De volgende voorbeelden laten zien hoe u elke methode kunt gebruiken met een incassoteam met de volgende documenten:

 db.teams.insertOne({name: " Dallas Mavs ", points: 31})
db.teams.insertOne({name: " San Antonio Spurs ", points: 22})
db.teams.insertOne({name: " Houston Rockets ", points: 19})
db.teams.insertOne({name: " Boston Celtics ", points: 26})
db.teams.insertOne({name: " Cleveland Cavs ", points: 33})

Voorbeeld 1: De lengte van een string vinden

We kunnen de volgende code gebruiken om de lengte van de string in het veld „naam“ van elk document te berekenen:

 db.teams.aggregate([
  { $project : {
        "name": 1,
        "length": { $strLenCP : " $name " }
  }}
])

Deze code retourneert de volgende resultaten:

 { _id: ObjectId("62014eff4cb04b772fd7a93d"),
  name: 'Dallas Mavs',
  length: 11 }
{ _id: ObjectId("62014eff4cb04b772fd7a93e"),
  name: 'San Antonio Spurs',
  length: 17 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
  name: 'Houston Rockets',
  length: 15 }
{ _id: ObjectId("62014eff4cb04b772fd7a940"),
  name: 'Boston Celtics',
  length: 14 }
{ _id: ObjectId("62014eff4cb04b772fd7a941"),
  name: 'Cleveland Cavs',
  length: 14 }

De lengtewaarde geeft de lengte van de tekenreeks weer in de kolom ’naam‘.

Bijvoorbeeld:

  • De lengte van de „Dallas Mavs“ -keten is 11 .
  • De lengte van de ‚San Antonio Spurs‘ ketting is 17 .

Enzovoort.

Merk op dat de lengte ook lege ruimtes meetelt.

Voorbeeld 2: Vind documenten waarvan de string groter is dan een bepaalde lengte

We kunnen de volgende code gebruiken om alleen documenten terug te geven waarvan de string in de kolom „naam“ groter is dan 14 :

 db.teams.find({ 
    "name": { $exists : true },
    $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

Deze query retourneert de volgende resultaten:

 { _id: ObjectId("62014eff4cb04b772fd7a93e"),
  name: 'San Antonio Spurs',
  points: 22 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
  name: 'Houston Rockets',
  points: 19 }

Houd er rekening mee dat de enige twee geretourneerde teams degenen zijn waarvan het veld „naam“ groter is dan 14 .

Opmerking : u kunt de volledige documentatie voor de functie $strLenCP hier vinden.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in MongoDB kunt uitvoeren:

MongoDB: Hoe een string in een array van substrings te splitsen
MongoDB: Tekenreeksen van twee velden samenvoegen
MongoDB: Strings vervangen in

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert