MongoDB : Comment trouver la longueur d’une chaîne



Vous pouvez utiliser les méthodes suivantes pour trouver la longueur d’une chaîne dans MongoDB et utiliser cette longueur de chaîne dans les requêtes :

Méthode 1 : Trouver la longueur de la chaîne

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

Méthode 2 : rechercher des documents dont la chaîne est supérieure à une certaine longueur

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

Les exemples suivants montrent comment utiliser chaque méthode avec une équipe de collecte avec les documents suivants :

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})

Exemple 1 : Trouver la longueur d’une chaîne

Nous pouvons utiliser le code suivant pour calculer la longueur de la chaîne dans le champ « nom » de chaque document :

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

Ce code renvoie les résultats suivants :

{ _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 } 

La valeur de longueur affiche la longueur de la chaîne dans la colonne « nom ».

Par exemple:

  • La longueur de la chaîne « Dallas Mavs » est de 11 .
  • La longueur de la chaîne ‘San Antonio Spurs’ est de 17 .

Et ainsi de suite.

Notez que la longueur compte également les espaces vides.

Exemple 2 : rechercher des documents dont la chaîne est supérieure à une certaine longueur

Nous pouvons utiliser le code suivant pour renvoyer uniquement les documents dont la chaîne dans la colonne « nom » est supérieure à 14 :

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

Cette requête renvoie les résultats suivants :

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

Notez que les deux seules équipes renvoyées sont celles dont le champ « nom » est supérieur à 14 .

Remarque : Vous pouvez trouver la documentation complète de la fonction $strLenCP ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans MongoDB :

MongoDB : Comment diviser une chaîne en un tableau de sous-chaînes
MongoDB : Comment concaténer des chaînes de deux champs
MongoDB : Comment remplacer des chaînes dans

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *