Operadores de MongoDB $ e $ piso

Operadores de MongoDB $ e $ piso

O $ CEIL e o piso $ são operadores de expressão aritmética que estão disponíveis em MongoDB para uso nos diferentes estágios do pipeline agregado. O operador $ teche é usado para buscar o menor valor inteiro que é maior ou igual ao valor inteiro dado. Enquanto o operador de piso $ do MongoDB trabalha para obter o número inteiro mais alto que é menor ou igual ao valor fornecido. O teto MongoDB $ e os operadores de piso $ aceitam a expressão válida que avalia um valor numérico.

Como usar os operadores de MongoDB $ e $ piso

O $ CEIL e $ Operadores de piso são aplicados aos campos dos documentos que contêm valores numéricos. Então, inserimos os documentos junto com os diferentes campos da coleção "ExamSReport" de MongoDB. Aqui, usamos o comando InsertMany para adicionar o documento de uma vez. A representação de inserir o documento na coleção "ExamSReport" é a seguinte:

dB.ExamSReport.InsertMany ([

"_id": 1,
"Aluno": "Tan" ,
"Departamento": "It",
"Porcentagem": 98.99,
"CGPA": 3.9,
"Marks": "Internalmarks": 10.5,
"Externalmarks": 11.75
,

"_id": 2,
"Aluno": "Kim" ,
"Departamento": "CS",
"Porcentagem": 88.45,
"CGPA": 3.68,
"Marks": "Internalmarks": 9.5,
"Externalmarks": 7.25
,

"_id": 3,
"Aluno": "Jenny" ,
"Departamento": "CS",
"Porcentagem": 95.72,
"CGPA": 3.84,
"Marks": "Internalmarks": 8.5,
"Externalmarks": 9.75
,

"_id": 4,
"Aluno": "Harry" ,
"Departamento": "SE",
"Porcentagem": 84.23,
"CGPA": 3.50,
"Marks": "Internalmarks": 5.65,
"Externalmarks": 7.28
,

"_id": 5,
"Aluno": "Charlie" ,
"Departamento": "It",
"Porcentagem": 81.3,
"CGPA": NULL,
"Marks": "Internalmarks": 4.5,
"Externalmarks": 6.9

]))

Quando os documentos são inseridos sem solução de problemas, a saída gerada pelo shell do MongoDB se parece com o seguinte:


reconhecido: verdadeiro,
inserdIds: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Exemplo 1: Usando o operador $ teto em MongoDB

O operador $ CEIL é usado aqui para obter o teto do campo fornecido do documento da coleção "ExamSReport". Usamos a função agregate () onde empregamos o operador de projeto $. Especificamos o campo "Student" com o valor de "1" que deve ser incluído junto com os valores do teto. O operador de projeto $ é então definido com o atributo "teto%". O atributo "teto%" é definido com o condição "$ tecto:" $ porcentagem ". O operador "$ tecto" é usado aqui, que leva o campo "$ porcentagem" para gerar o valor do teto.

dB.ExamSReport.agregar(
[[

$ projeto:

"aluno": 1,
"Ceiling%": $ ceil: "$ porcentagem"


]
)

A saída com o novo campo “%de teto”, onde os valores do teto da porcentagem de campo do operador $ tecto são exibidos. Todos os valores do teto são os menores números que são maiores ou iguais às porcentagens.

[[
_id: 1, aluno: 'tan', 'teto%': 99,
_id: 2, aluno: 'kim', 'teto%': 89,
_id: 3, aluno: 'Jenny', 'teto%': 96,
_id: 4, aluno: 'Harry', 'teto%': 85,
_id: 5, aluno: 'Charlie', 'teto%': 82
]

Exemplo 2: Usando o operador $ teto para o documento incorporado em MongoDBB

Agora, implantamos o operador $ tectário para encontrar o menor valor de teto numérico que é maior ou igual ao valor do campo aninhado "marcas internas" do campo "Marcas". Primeiro, especificamos o Operador de Projeto $ dentro do comando agregado. Em seguida, definimos o valor de "1" para as "marcas incorporadas.Campo Internalmarks ”a ser exibido com os resultados. Depois disso, temos um atributo "teto -marks", que é inserido com o operador $ teto como "$ tecto:" $ Marks.marcas internas ””. Observe que o operador $ teto está atribuído com as “marcas incorporadas.Campo internalmarks ”para buscar o valor do teto deste campo.

dB.ExamSReport.agregar([
$ Project:
"Marcas.marcas internas ": 1,
Ceilingmarks: $ teto: "$ Marks.Internalmarks "])

Os resultados mostram onde temos os valores de campo "marcos internos" incorporados e os valores do teto são obtidos. Os valores de teto obtidos são todos arredondados dos valores reais do campo especificado.

[[
_id: 1, Marks: Internalmarks: 10.5, Ceilingmarks: 11,
_id: 2, Marks: Internalmarks: 9.5, Ceilingmarks: 10,
_id: 3, Marks: Internalmarks: 8.5, Ceilingmarks: 9,
_id: 4, Marks: Internalmarks: 5.65, Ceilingmarks: 6,
_id: 5, Marks: Internalmarks: 4.5, Ceilingmarks: 5
]

Exemplo 3: Usando o operador $ teto para o campo de documentos ausentes em MongoDB

Quando o operador $ tecto. Considere a consulta em que usamos o operador $ tectário para obter o menor valor inteiro que é maior ou igual ao campo que não existe no documento. Para isso, usamos o operador de Match $ onde a expressão ““ departamento ”:“ it ”” é dada para corresponder a esse documento específico. Em seguida, chamamos o operador de projeto $, que é inserido com o campo "Student" com o número inteiro "1", que indica que apenas o campo "Student" aparece na saída. Em seguida, criamos o atributo "tetomobile" para que o operador $ teto seja empregado. Fornecemos o campo "$ celular_number" para o operador $ tecto.

dB.ExamSReport.agregar(
[[
$ Match: "departamento": "it",

$ projeto:

"aluno": 1,
CeilingMobile: $ CEIL: "$ celular_number"


]
)

Lá, podemos ver que o valor nulo é obtido contra o atributo "teto -bile", já que o campo de não existência está definido para o operador $ tecto.

[[
_id: 1, aluno: 'tan', tetomobile: null,
_id: 5, aluno: 'Charlie', tetomobile: null
]

Exemplo 4: Usando o operador $ piso em mongodb

Aqui, começamos com outro operador de piso de $ MongoDB. Obtemos o maior número do operador de piso $ que é menor ou igual ao número inteiro dado. Então, combinamos o documento "Departamento", cujo valor é "CS", que é definido como uma condição para o operador $ Match. Depois disso, projetamos o campo "CGPA" e o atributo "pisoCGPA" dentro do operador $ Project Operator. O "FloorcGPA" possui a declaração "$ piso:" $ cgpa "", onde o operador de piso $ é utilizado para obter o maior valor que é menor ou igual aos valores do campo "$ cGPA".

dB.ExamSReport.agregar([
$ Match: departamento: "cs",
$ Project:
CGPA: 1,
Floorcgpa: $ piso: "$ cgpa"])

O operador $ piso retorna os seguintes valores do campo "CGPA". O "CGPA" são os valores reais e o "pisoCGPA" são os valores do piso.

[[
_id: 2, CGPA: 3.68, Floorcgpa: 3,
_id: 3, CGPA: 3.84, Floorcgpa: 3
]

Exemplo 5: Usando o operador $ piso para o valor nulo em MongoDB

O piso $ e os operadores de $ tectos retornam nulos quando o campo contém o valor nulo para obter os valores do teto e do piso. Aqui, tomamos um exemplo com o operador $ piso. Especificamos o documento "" _id ": 5" para o operador de Match $ cujo campo "CGPA" tem o valor nulo. Em seguida, passamos o campo "CGPA" para o operador $ piso, que está definido no atributo "pisovalue" do operador de projeto $. Aqui, o operador $ piso simplesmente retorna a saída nula porque o valor "cGPA" é "nulo".

dB.ExamSReport.agregar(
[[
$ Match: "_id": 5,

$ projeto:

"aluno": 1,
"CGPA": 1,
FloorValue: $ piso: "$ cgpa"


]
)

Os seguintes resultados são gerados onde o campo "CGPA" tem um valor nulo, é por isso que o valor do assote é nulo no campo "FloorValue".

[_id: 5, CGPA: NULL, PISTOLUE: NULL]

Exemplo 6: Usando o operador $ piso para a operação NAN em MongoDB

O operador de piso $, bem como o operador $ tecto. Aqui, temos uma implementação desta declaração. Encontramos o documento que armazena o valor do campo "estudante" como "Harry". Em seguida, invocamos o operador de piso $ dentro do operador de projeto $ e o atributo "piso", que é especificado com a expressão indefinida "$ piso:" $ cgpa " * 1".

dB.ExamSReport.agregar(
[[
$ Match: "Student": "Harry",
$ Project:
piso: $ piso: "$ cgpa" * 1


]
)

O atributo "piso" tem o valor "nan" retornado do operador $ piso.

[_id: 4, piso: nan]

Conclusão

Este artigo é sobre a funcionalidade do MongoDB $ CEIL e $ Operadores de piso. Discutimos pela primeira vez o exemplo básico dos operadores $ CEIL e $ PISO. Depois disso, levamos os diferentes cenários para os operadores $ tecto e $ piso. Primeiro, utilizamos o operador $ CEIL no documento incorporado e, em seguida, aplicamos o operador $ CEIL em campo, que não faz parte de nenhum documento. Em seguida, temos os estojos de operadores de chão de $ dos quais recuperamos os valores nulos e NAN por causa das expressões especificadas.