Mongodb: como encontrar o comprimento de uma string


Você pode usar os seguintes métodos para encontrar o comprimento de uma string no MongoDB e usar esse comprimento de string em consultas:

Método 1: Encontre o comprimento da corrente

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

Método 2: Encontre documentos cuja string seja maior que um determinado comprimento

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

Os exemplos a seguir mostram como usar cada método com uma equipe de coleta com os seguintes documentos:

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

Exemplo 1: Encontrando o comprimento de uma string

Podemos usar o seguinte código para calcular o comprimento da string no campo “nome” de cada documento:

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

Este código retorna os seguintes resultados:

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

O valor do comprimento exibe o comprimento da string na coluna “nome”.

Por exemplo:

  • O comprimento da corrente “Dallas Mavs” é 11 .
  • O comprimento da corrente do ‘San Antonio Spurs’ é 17 .

E assim por diante.

Observe que o comprimento também conta espaços vazios.

Exemplo 2: Encontre documentos cuja string seja maior que um determinado comprimento

Podemos usar o seguinte código para retornar apenas documentos cuja string na coluna “nome” seja maior que 14 :

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

Esta consulta retorna os seguintes resultados:

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

Observe que as únicas duas equipes retornadas são aquelas cujo campo “nome” é maior que 14 .

Nota : Você pode encontrar a documentação completa da função $strLenCP aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns no MongoDB:

MongoDB: Como dividir uma string em um array de substrings
MongoDB: Como concatenar strings de dois campos
MongoDB: Como substituir strings em

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *