Consultas de correspondência de MongoDB Regex

Consultas de correspondência de MongoDB Regex
Às vezes, não sabemos o valor associado ao campo no documento. Portanto, usamos a expressão regular do MongoDB para determinar as correspondências específicas para o documento. Expressões regulares são um elemento importante de programação que analisa diferentes coleções de padrões, principalmente as strings. Usamos o operador $ regex como uma expressão regular em MongoDB para identificar um padrão em uma string. Recursos de expressão regular fornecem o operador $ regex para corresponder a um padrão de strings em consultas.

Como o Regex corresponde às consultas em MongoDB?

O operador $ regex nos permite procurar uma string específica em uma coleção especificada. O operador $ regex permite que expressões regulares sejam usadas para combinar com seqüências de padrões em consultas. O MongoDB fornece a estrutura do operador $ regex dessa maneira: : $ regex: 'Pattern', $ options: '' onde a chave representa o nome da coluna para o qual o $ regex é fornecido para corresponder ao formulário do padrão o documento. A “$ opções” é opcional na consulta de correspondência de padrões e contém várias opções que têm funcionalidades diferentes. Usaremos algumas das opções com as consultas de exemplo. Aqui, usamos o banco de dados "professores" que é usado para executar a operação $ regex. Usamos a consulta InsertMany para colocar quatro documentos que contêm os três campos: "Nome", "Curso" e "Classes". A consulta de inserção de documentos na coleção “Professores” do MongoDB é dada da seguinte forma:

dB.Professores.InsertMany ([

"Nome": "Paul",
"Curso": "Desenvolvimento da Web",
"Classes": ["it", "cs", "SE"]
,

"Nome": "Peter",
"Curso": "Contas",
"Classes": ["SE", "BBA", "It"]
,

"Nome": "Katherin",
"Curso": "Cálculo",
"Classes": ["BBA", "CS", "It"]
,

"Nome": "Daniel",
"Curso": "Python",
"Classes": ["it", "cs"]

]))

Agora, todos os documentos são inseridos na coleção de "professores" com sucesso. Podemos usar facilmente os campos para correspondência de padrões com o operador $ regex.

Exemplo # 1: Usando o operador $ regex em MongoDB para corresponder ao valor.

Aqui, estamos usando o operador $ regex para corresponder ao valor da chave de posição. Fornecemos o "nome" do campo no método find (). Então, fornecemos a expressão regular "$ regex:"^paul "" onde o $ regex é empregado para corresponder ao valor "Paul" para o campo "nome". A estrutura da consulta $ regex é fornecida abaixo. O método foreach () é fornecido com o parâmetro "printjson", que mostra cada documento fornecido pela consulta $ regex Operator com mais eficiência.

dB.Professores.encontre (nome: $ regex: "^paul").foreach (printjson)

O documento cujo campo "nome" é combinado com a string "Paul" é recuperado na imagem a seguir do shell:

Exemplo # 2: Usando o operador $ regex em MongoDB que começa com o caractere especificado.

Às vezes, pretendemos identificar o campo que começa com o personagem específico, então $ regex é usado para definir os critérios de seleção. Aqui, demos uma consulta simples, onde definimos o método find () que leva o campo de "nome". Em seguida, especificamos a expressão regular “nome: $ regex:“ P ”” para esse campo para correspondência de padrões. O operador $ regex correspondeu apenas aos nomes dos professores que começam com o personagem "P" nos documentos. O documento será impresso no formato JSON pelo método foreach ().

dB.Professores.encontre (nome: $ regex: "p").foreach (printjson)

Temos apenas dois documentos impressos abaixo que correspondem ao padrão especificado do operador $ regex de que o personagem deve começar com "P".

Exemplo # 3: Usando o operador $ regex em MongoDB que termina com o personagem necessário.

Como no exemplo anterior de consulta do operador $ regex, buscamos os documentos cujo primeiro personagem começa com o personagem especificado para a expressão $ regex. Aqui, recuperamos o documento cujo campo "nome" termina com o personagem "L". O símbolo "$" é usado com o personagem "L", que garante que a string termine com este personagem específico. O padrão regular “$ regex:“ l $ ”” é atribuído ao operador $ regex, que procura esse padrão específico do documento.

dB.Professores.encontre (nome: $ regex: "l $").bonito()

Quando a consulta de correspondência de padrões é executada, ela exibe apenas os documentos cuja coluna de "nome" do professor acaba com o personagem "L". Os documentos de saída são exibidos na imagem a seguir do Shell MongoDB:

Exemplo # 4: Usando o operador $ regex em MongoDB com o operador de opções $.

O operador $ regex também forneceu opções diferentes que podem ser definidas usando o operador de opções $. Neste exemplo, usamos uma expressão regular em uma circunstância sensível ao caso em que o parâmetro "i" é usado no operador de opções $. $ Opções Valor “i” corresponde aos padrões de alfabeto superior e inferior na string. A estrutura da consulta é dada onde o campo de posição “Curso” recebe uma expressão do padrão regular correspondente aos cenários sensíveis ao caso. A expressão “$ regex:“ python ”, $ options: 'i'” pesquisa a string “python” e a opção $ é usada para corresponder à caixa inferior e superior da string “python”.

dB.Professores.encontre (curso: $ regex: "python", $ options: 'i').bonito()

O resultado exibiu o documento cujo campo “Curso” compreende a string insensível ao caso “Python”.

Exemplo # 5: Usando o operador $ regex em MongoDB que corresponde ao valor de uma matriz.

O princípio da expressão regular também pode ser implementado para as matrizes dentro dos documentos. A expressão regular é essencial quando lidamos com as tags. Aqui, temos uma consulta de expressão regular para corresponder ao valor da tag. Demos uma expressão Classes: $ regex: "it" para o método find (). A expressão é fornecida com o campo “Classes” que é implantado com a expressão regular. O operador $ regex é aplicado à expressão regular com o padrão "it". O operador $ regex procura o padrão "it" a partir daquele campo de matriz "classes".

dB.Professores.encontre (classes: $ regex: "it")

O operador $ regex retornou todos os documentos abaixo, cujos valores da matriz continham o padrão "it".

Exemplo # 6: Usando o operador $ regex em MongoDB no método de agregação.

O método de agregação contém apenas o operador de consulta $ regex junto com o estágio $ da partida. Portanto, a funcionalidade do $ regex é realizada pelo operador $ regexmatch. Aqui, chamamos o método agregate () na coleção "Professores". Em seguida, usamos o $ addfields que leva o atributo "resultados" para gerar a saída retornada da expressão especificada. A expressão "$ regexMatch: input:" $ curso ", regex:/accounts/" é fornecido onde o operador "$ regexmatch" é usado para inserir o campo "$ curso" que correspondia ao padrão "regex" "/conta /”.

dB.Professores.agregar(
[$ addfields: Resultados: $ regexMatch: input: "$ curso", regex: / accouts /])

Os documentos cujo nome do curso é contas são emitidas com o valor verdadeiro e os resultados restantes do documento são exibidos com o valor falso.

Conclusão

As consultas $ regex são usadas para encontrar padrões e caracteres em uma string. Aqui, exploramos a expressão regular para correspondência de padrões usando o operador $ regex nos critérios de seleção. Além disso, temos as opções $ que também são usadas com o $ regex na expressão regular para corresponder ao padrão. Em seguida, realizamos a expressão regular na matriz e para a técnica de agregação com o estágio $ regexmatch.