El $ techo y el piso $ son operadores de expresión aritmética que están disponibles en MongoDB para su uso en las diferentes etapas de la tubería agregada. El operador $ CEIL se utiliza para obtener el valor entero más bajo que es mayor o igual al valor entero dado. Mientras que el operador $ piso del MongoDB funciona para obtener el entero más alto que sea menor o igual al valor dado. El MongoDB $ Ceil y los operadores de $ piso aceptan la expresión válida que se evalúa con un valor numérico.
Cómo usar los operadores MongoDB $ CEIL y $ Floor
Los operadores $ techo y $ piso se aplican a los campos de los documentos que contienen valores numéricos. Entonces, insertamos los documentos junto con los diferentes campos en la colección "ExamsReport" de MongoDB. Aquí, usamos el comando InsertMany para agregar el documento a la vez. La representación de insertar el documento en la colección "ExamsReport" es la siguiente:
db.Receptor de exámenes.insertmany ([
"_id": 1,
"Estudiante": "Tan" ,
"Departamento": "Es",
"Porcentaje": 98.99,
"CGPA": 3.9,
"Marcas": "InternalMarks": 10.5,
"Marcos externos": 11.75
,
"_id": 2,
"Estudiante": "Kim" ,
"Departamento": "CS",
"Porcentaje": 88.45,
"CGPA": 3.68,
"Marcas": "InternalMarks": 9.5,
"Marcos externos": 7.25
,
"_id": 3,
"Estudiante": "Jenny" ,
"Departamento": "CS",
"Porcentaje": 95.72,
"CGPA": 3.84,
"Marcas": "InternalMarks": 8.5,
"Marcos externos": 9.75
,
"_id": 4,
"Estudiante": "Harry" ,
"Departamento": "SE",
"Porcentaje": 84.23,
"CGPA": 3.50,
"Marcas": "InternalMarks": 5.sesenta y cinco,
"Marcos externos": 7.28
,
"_id": 5,
"Estudiante": "Charlie" ,
"Departamento": "Es",
"Porcentaje": 81.3,
"CGPA": NULL,
"Marcas": "InternalMarks": 4.5,
"Marcos externos": 6.9
])
Cuando los documentos se insertan sin solución de problemas, la salida generada por el shell MongoDB se ve así:
Reconocido: verdadero,
insertedids: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5
Ejemplo 1: Uso del operador $ CEIL en MongoDB
El operador $ CEIL se usa aquí para obtener el techo del campo proporcionado del documento de la colección "ExamsReport". Usamos la función agregada () donde empleamos el operador de proyectos $. Especificamos el campo "Estudiante" con el valor de "1" que debe incluirse junto con los valores del techo. El operador de proyecto $ se define con el atributo "Techo%". El atributo "Techo%" se establece con la condición "$ tceil:" $ porcentaje ". El operador "$ techo" se usa aquí, que toma el campo "$ porcentaje" para generar el valor del techo.
db.Receptor de exámenes.agregar(
[
$ Proyecto:
"Estudiante": 1,
"Techo%": $ techo: "$ porcentaje"
]
)
Se muestran la salida con el nuevo campo "%de techo" donde se muestran los valores del techo del porcentaje de campo del operador de ceil $. Todos los valores del techo son los números más pequeños que son mayores o iguales a los porcentajes.
[
_id: 1, estudiante: 'bronceado', 'techo%': 99,
_id: 2, estudiante: 'kim', 'techo%': 89,
_id: 3, estudiante: 'jenny', 'techo%': 96,
_id: 4, estudiante: 'Harry', 'techo%': 85,
_id: 5, estudiante: 'Charlie', 'techo%': 82
]
Ejemplo 2: Uso del operador $ CEIL para el documento integrado en MongoDB
Ahora, implementamos el operador $ CEIL para encontrar el valor de techo numérico más pequeño que es mayor o igual al valor del campo anidado de "marcas internas" del campo "Marcas". Primero, especificamos el operador de proyecto $ dentro del comando agregado. Luego, establecemos el valor de "1" para las "marcas incrustadas.campo de marks internos "que se mostrará con los resultados. Después de eso, tenemos un atributo "Techo Marks" que se ingresa con el operador $ CEIL como "$ techo:" $ Marcas.internos marcos "". Tenga en cuenta que el operador $ CEIL se asigna con las "marcas integradas.campo de marcos internos para obtener el valor del techo de este campo.
db.Receptor de exámenes.agregar([
$ Project:
"Marcas.Marcos internos ": 1,
Techo Marks: $ techo: "$ Marks.InternalMarks "])
Los resultados muestran dónde tenemos los valores de campo de "marcas internas" incrustadas y los valores de techo se obtienen. Los valores de techo obtenidos se redondean de los valores reales del campo especificado.
[
_id: 1, marcas: internermarks: 10.5, marcas de techo: 11,
_id: 2, marcas: internermarks: 9.5, marcas de techo: 10,
_id: 3, marcas: internermarks: 8.5, marcas de techo: 9,
_id: 4, marcas: internermarks: 5.65, marcas de techo: 6,
_id: 5, marcas: internermarks: 4.5, marcas de techo: 5
]
Ejemplo 3: Uso del operador $ CEIL para el campo de documento que falta en MongoDB
Cuando el operador $ tceil de MongoDB encuentra el campo de documento de no existencia, le da al valor nulo. Considere la consulta en la que usamos el operador $ CEIL para obtener el valor entero más pequeño que es mayor o igual al campo que no existe en el documento. Para esto, usamos el operador $ Match donde se proporciona la expresión "" departamento ":" it "" para que coincida con ese documento en particular. Luego, llamamos al operador del proyecto $ que se ingresa con el campo "Estudiante" con el entero "1" que indica que solo aparece el campo "Estudiante" en la salida. A continuación, creamos el atributo "CeilingMobile" para que se emplee el operador $ CEIL. Proporcionamos el campo "$ mobile_number" al operador $ CEIL, que es el campo faltante de los documentos de colección "ExamsReport".
db.Receptor de exámenes.agregar(
[
$ Match: "Departamento": "It",
$ Proyecto:
"Estudiante": 1,
techo de techo: $ tceil: "$ mobile_number"
]
)
Allí, podemos ver que el valor nulo se obtiene contra el atributo "techo de techo" ya que el campo de no existencia está configurado en el operador de $ techo.
[
_id: 1, Student: 'Tan', CeilingMobile: Null,
_id: 5, Estudiante: 'Charlie', CeilingMobile: Null
]
Ejemplo 4: Uso del operador de piso $ en MongoDB
Aquí, comenzamos con otro operador de $ piso de MongoDB. Obtenemos el mayor número del operador de piso $ que es menor o igual al número entero dado. Por lo tanto, coincidimos con el documento "Departamento" cuyo valor es "CS", que se establece como una condición para el operador $ Match. Después de eso, proyectamos el campo "CGPA" y el atributo "FloorCGPA" dentro del Operador de Proyecto $. La declaración "FloorCGPA" tiene la declaración "$ piso:" $ cgpa "" donde se utiliza el operador de piso $ para obtener el valor más grande que es menor o igual a los valores del campo "$ cgpa".
db.Receptor de exámenes.agregar([
$ Match: Departamento: "CS",
$ Project:
CGPA: 1,
FloorCgpa: $ Floor: "$ cgpa"])
El operador $ piso devuelve los siguientes valores del campo "CGPA". Los "CGPA" son los valores reales y el "FloorCGPA" son los valores del piso.
[
_id: 2, CGPA: 3.68, FloorCgpa: 3,
_id: 3, CGPA: 3.84, FloorCgpa: 3
]
Ejemplo 5: Uso del operador de piso $ para el valor nulo en MongoDB
Los operadores $ piso y $ techo regresan nulos cuando el campo contiene el valor nulo para obtener el techo y los valores de piso. Aquí, tomamos un ejemplo con el operador de $ piso. Especificamos el documento "" _id ": 5" al operador $ coincidencia cuyo campo "CGPA" tiene el valor nulo. Luego, pasamos ese campo "CGPA" al operador $ Floor que se establece dentro del atributo "Value de piso" del operador de proyecto $. Aquí, el operador $ piso simplemente devuelve la salida nula porque el valor "CGPA" es "nulo".
db.Receptor de exámenes.agregar(
[
$ Match: "_id": 5,
$ Proyecto:
"Estudiante": 1,
"CGPA": 1,
Value de piso: $ piso: "$ cgpa"
]
)
Los siguientes resultados se generan donde el campo "CGPA" tiene un valor nulo, por eso el valor del piso es nulo contra el campo "Value de piso".
[_id: 5, CGPA: NULL, Floorvalue: Null]
Ejemplo 6: Uso del operador de piso $ para la operación NAN en MongoDB
El operador de piso $, así como las salidas del operador de $ CEIL, NAN si el valor del argumento es nan. Aquí, tenemos una implementación de esta declaración. Encontramos el documento que almacena el valor del campo "estudiante" como "Harry". Luego, invocamos el operador $ piso dentro del operador de proyecto $ y el atributo "piso" que se especifica con la expresión indefinida "$ piso:" $ cgpa " * 1".
db.Receptor de exámenes.agregar(
[
$ Match: "Student": "Harry",
$ Project:
piso: $ piso: "$ cgpa" * 1
]
)
El atributo "piso" tiene el valor "nan" devuelto del operador de $ piso.
[_id: 4, piso: nan]
Conclusión
Este artículo trata sobre la funcionalidad de los operadores MongoDB $ CEIL y $ Floor. Primero discutimos el ejemplo básico de los operadores $ techos y $ piso. Después de eso, tomamos los diferentes escenarios para los operadores de $ techo y $ piso. Primero, utilizamos el operador $ CEIL en el documento integrado y luego aplicamos el operador $ CEIL en el campo que no es parte de ningún documento. A continuación, tenemos las cajas de operador de piso $ de las cuales recuperamos los valores NULL y NAN debido a las expresiones especificadas.