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