MONGODB $ STRCASECMP

MONGODB $ STRCASECMP
Ao fazer uma comparação em diferentes idiomas, tendemos a usar operadores de comparação. A comparação pode ser sensível a minúsculas ou insensíveis de acordo com a escolha de um usuário. Assim como outros ambientes de desenvolvimento, o MongoDB tem seus operadores de comparação e um desses operadores é o operador "strcaSecmp". O operador MongoDB STRCASECMP compara dois valores de string de maneira insensível ao caso I.e., Ignore o estojo de string e pesquise. O operador STRCASECMP retorna 0 se as duas seqüências forem iguais, 1 se o primeiro valor for maior que o segundo e -1 se o primeiro valor for menor que o segundo valor. O operador pode ser usado em uma consulta do MongoDB para filtrar documentos com base nos valores de string.

Criar coleção

Comece com a criação de uma nova coleção de banco de dados em seu banco de dados. O comando anexado abaixo está criando uma nova coleção chamada "Data" em nosso banco de dados MongoDB "Teste". A resposta de ok: 1 indica que a coleção foi criada com sucesso e pode ser utilizada mais.

Teste> dB.createCollection ("dados")
ok: 1

Insira registros na coleta

No início da criação de uma coleção, ela deve estar vazia, pois ainda não adicionamos nenhum documento. Para executar o operador STRCASECMP em uma coleção de "dados", ele deve ter documentos. Portanto, usaremos a função MongoDB InsertMany para adicionar vários registros a uma coleção chamada "Data" de uma só vez. Os documentos que estão sendo inseridos estão no formato de pares de valores-chave, com chaves "title" e "desc" e seus respectivos valores. Os valores que estão sendo inseridos incluem "John", "John", "IDK" e "Lisa" para a chave "título" e "um cara aleatório", "bom garoto", "idontknow" e "Enginnerer" para o " Chave descec ”. O comando é adicionar 4 novos documentos. A saída mostra o "reconhecido" como um valor booleano, que é definido como true, indicando que a consulta foi reconhecida e executada pelo servidor MongoDB com sucesso.

Teste> dB.Dados.InsertMany ([Title: "John", Desc: "A Random Guy", Title: "John", Desc: "Good Boy", Title: "IDK", Desc: "IDONTKNE", Título : "Lisa", Desc: "Enginnerer"])

reconhecido: verdadeiro,
inserdids:
'0': objectId ("63C90D6A42844A817C33167C"),
'1': objectId ("63C90D6A42844A817C33167D"),
'2': objectId ("63C90D6A42844A817C33167E"),
'3': objectId ("63C90D6A42844A817C33167F")

Exibir os registros de coleção

Depois de inserir um total de 4 registros na coleção "dados" do banco de dados "Teste", devemos verificar os documentos pelo menos uma vez. Portanto, precisamos exibir os registros inseridos no shell do MongoDB para visualização. O comando para visualizar os registros foi anexado abaixo. Ao usar o método MongoDB find (), recuperamos todos os documentos da coleção "dados". O objeto vazio passou como um argumento para o método find () significa que nenhuma condição de filtragem é aplicada e todos os documentos da coleção serão retornados. A saída deste comando é uma matriz de documentos, cada um que contém os campos _id, título e DESC e seus respectivos valores, que foram adicionados anteriormente na coleção. A saída confirma que os documentos estão presentes na coleção e podem ser recuperados para processamento adicional.

Teste> dB.Dados.encontrar()
[_id: objectId ("63C90D6A42844A817C33167C"), Título: 'John', Desc: 'A Random Guy',
_id: objectId ("63C90D6A42844A817C33167D"), Título: 'John', Desc: 'Good Boy',
_id: objectId ("63C90D6A42844A817C33167E"), Título: 'Idk', Desc: 'Idontknow',
_id: objectId ("63C90D6A42844A817C33167F"), Título: 'Lisa', Desc: 'Enginnerer']

Exemplo # 01:

Em nossa primeira ilustração do MongoDB, usaremos o operador STRCASECMP para executar uma comparação entre dois valores de string: comparação insensível ao caso. Para isso, vamos executar a consulta mostrada abaixo no shell do MongoDB que está usando a função agregada do MongoDB para executar uma série de operações em uma coleção chamada "Data". A primeira operação é uma fase de projeto $, que modifica os documentos da coleção adicionando ou removendo campos. Nesse caso, o estágio $ do projeto exibirá todos os registros do "título" do campo, além de adicionar um novo campo chamado "resultado" a cada documento, que é o resultado de comparar o valor do campo "título" com A string "IDK" usando o operador $ strcaSecmp.

A comparação é insensível a minúsculas, o que significa que "John" e "John" seriam considerados iguais. O novo campo "Resultado" exibe a saída da comparação do campo "Título" com "IDK". 0 No terceiro registro mostra que a string "id" é igual à string "IDK" no campo "Título" enquanto o resto é 1.

Teste> dB.Dados.agregado ([$ Project: title: 1, resultado: $ strcasecmp: ["$ title", "idk"]])
[_id: objectId ("63C90D6A42844A817C33167C"), Título: 'John', resultado: 1,
_id: objectId ("63C90D6A42844A817C33167D"), Título: 'John', resultado: 1,
_id: objectId ("63C90D6A42844A817C33167E"), Título: 'IDK', resultado: 0,
_id: objectId ("63C90D6A42844A817C33167F"), Título: 'Lisa', resultado: 1]

Exemplo # 02:

Vamos ter uma nova ilustração de comparar strings de maneira insensível ao caso no banco de dados MongoDB. Desta vez, o código que estamos usando está utilizando a mesma função agregada para executar uma comparação no campo "Título". A fase $ do projeto está criando um novo campo com o mesmo nome: "resultado" que armazena a saída da comparação. Para comparação, estamos usando o mesmo operador $ strcaSecmp. O operador $ STRCASECMP é passado com dois argumentos: "$ title", que é o valor do campo "Title" em cada documento e "John", que é a string usada como o valor de comparação. Neste exemplo, o primeiro documento tem um campo de "título" de 'John', que é igual a "John", então o resultado é 0.

O segundo documento tem um campo de "título" de 'John', que também é igual a "John", mas em maiúsculas. Então, o "resultado" também é 0. O terceiro documento tem um campo de "título" de "IDK", que é menor que "John" em termos de ordem lexicográfica, então o resultado é -1. O quarto documento tem um campo de "título" de 'Lisa', que é maior que "John" em termos de ordem lexicográfica, então o resultado é 1.

Teste> dB.Dados.agregado ([$ Project: title: 1, resultado: $ strcasecmp: ["$ title", "John"]])
[_id: objectId ("63C90D6A42844A817C33167C"), Título: 'John', resultado: 0,
_id: objectId ("63C90D6A42844A817C33167D"), Título: 'John', resultado: 0,
_id: objectId ("63C90D6A42844A817C33167E"), Título: 'IDK', resultado: -1,
_id: objectId ("63C90D6A42844A817C33167F"), Título: 'Lisa', resultado: 1]

Exemplo # 03:

Em nossa última ilustração, usaremos o campo "Desc" da coleção "Data" para ser comparado com uma nova string. O operador $ strcaSecmp está sendo aprovado em dois argumentos: "$ desc", que é o valor do campo "Desc" em cada documento e "idontknow", que é a string usada como o valor de comparação.

O primeiro, o segundo e o quarto documentos têm um campo "Desc" de "um cara aleatório", que é menor ou maior que a string "idontknow" em termos de ordem lexicográfica. Então, o resultado desses registros é -1. O terceiro documento tem um campo "Desc" de 'Idontknow', que é igual a "IDONTKNOB", independentemente do caso de letras, então o resultado é 0.

Teste> dB.Dados.agregado ([$ Project: desc: 1, resultado: $ strcasecmp: ["$ desc", "idontknow"]])
[_id: objectId ("63C90D6A42844A817C33167C"), DESC: 'Um cara aleatório', resultado: -1,
_id: objectId ("63C90D6A42844A817C33167D"), Desc: 'Good Boy', resultado: -1,
_id: objectId ("63C90D6A42844A817C33167E"), DESC: 'IDONTKNO', resultado: 0,
_id: objectId ("63C90D6A42844A817C33167F"), Desc: 'Enginnerer', resultado: -1]

Conclusão

Este guia apresenta o conceito e o uso do operador STRCASECMP do MongoDB. Criamos uma nova coleção e realizamos comandos de função agregate () junto com o operador STRCASECMP para demonstrar o uso do operador STRCASECMP. Os exemplos usados ​​neste artigo demonstram como uma única string pode ser comparada de caso de caso aos valores de string dos campos de coleta.