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