Mongodb: como verificar se o campo contém uma string


Você pode usar a seguinte sintaxe no MongoDB para verificar se um determinado campo contém uma string específica:

 db.collection.findOne({ name : { $regex : /string/ }})

Os exemplos a seguir mostram como usar essa sintaxe com uma equipe de cobrança com os seguintes documentos:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

Exemplo 1: Verifique se o campo contém uma string

Podemos usar o seguinte código para verificar se existe um documento contendo a string “avs” no campo team:

 db.teams.findOne({ team : { $regex : /avs/ }}) 

Esta consulta retorna o seguinte documento:

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

Observe que a função findOne() retorna o primeiro documento de uma coleção que atende aos critérios de consulta.

Isso significa que outras equipes também podem ter a string “avs” no nome de sua equipe, mas o documento contendo o nome da equipe “Mavs” foi simplesmente o primeiro.

Exemplo 2: Verifique se o campo contém uma string (sem distinção entre maiúsculas e minúsculas)

Também podemos usar um i após a string para fazer uma correspondência sem distinção entre maiúsculas e minúsculas .

Por exemplo, suponha que usamos a seguinte consulta:

 db.teams.findOne({ team : { $regex : /AVS/i }}) 

Esta consulta também retorna o seguinte documento:

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

Exemplo 3: Verifique se o campo contém uma string (sem resultados)

Se um campo não contiver a string específica que procuramos, simplesmente receberemos null de acordo.

Por exemplo, suponha que usamos a seguinte consulta:

 db.teams.findOne({ team : { $regex : /ricks/ }})

Esta consulta retorna o seguinte resultado:

 null

Como nenhum documento contém a string “ricks” no nome da equipe, obtemos nulo como resultado.

Nota : Você pode encontrar a documentação completa do $regex aqui .

Recursos adicionais

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

MongoDB: Como procurar por “not null” em um campo específico
MongoDB: Como consultar com uma expressão regular “Like”
MongoDB: Como adicionar um novo campo a uma coleção
MongoDB: Como remover um campo de cada documento

Add a Comment

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