MongoDB $ tamaño

MongoDB $ tamaño
Los operadores son muy útiles cuando necesita realizar algo rápidamente sin realizar consultas complejas. MongoDB permite el uso de operadores mejorar su funcionalidad y realizar un procesamiento rápido en el sistema de bases de datos. Uno de esos operadores de MongoDB es el operador de "tamaño" que hasta ahora se utiliza para mostrar el único registro del resto que contiene un número específico de campos en uno de sus campos de matriz. En otras palabras, el operador de "tamaño" se puede aplicar a un campo de matriz específico para verificar si ese campo tiene un número específico de elementos dentro de él y mostrar todo el registro desde el que pertenece la matriz. Por lo tanto, esta guía demostrará el uso del operador de "tamaño" en MongoDB utilizando algunas consultas simples.

Crear colección

Busquemos las bases de datos ya existentes en nuestro MongoDB primero. Para esto, vamos a abrir el shell MongoDB y ejecutar su instrucción "Show DBS" en el área de consulta según lo dispuesto. La salida para esta instrucción muestra 3 bases de datos incorporadas con diferentes tamaños mientras trabajamos en una base de datos ficticia "prueba".

Prueba> Mostrar dbs
administrador 40.00 kib
configuración 60.00 kib
Local 72.00 kib

Usando la instrucción "Usar" junto con el nombre de la base de datos "Prueba", puede cambiar a cualquier base de datos como lo hemos hecho a continuación. La salida muestra que ya estamos utilizando la base de datos "Test".

Prueba> Usar prueba
ya en la prueba de DB

Muestremos todas las colecciones disponibles de una base de datos de "prueba" a través de la consulta "Show Collections". El detalle de salida no muestra nada ya que no tenemos colección en este momento.

prueba> mostrar colecciones;

Estamos creando una nueva colección llamada "Prueba" en la base de datos "Prueba" que se utilizará más. Para esto, hemos probado la consulta "DB" con la función "CreateCollection" de MongoDB. El estado de salida "OK: 1" muestra que la colección se crea con éxito.

Prueba> DB.createCollection ("prueba")
OK: 1

Ejemplo # 01:

Es hora de comenzar con nuestro primer ejemplo agregando algunos registros a la colección de "prueba" que acabamos de crear. Para hacerlo, vamos a usar la función "insertar" de MongoDB en la misma consulta "DB" junto con el nombre de una colección "Prueba". El registro que hemos agregado contiene 3 campos en total. Dos de los campos están en forma de matriz I.E "PersonalDetails" y "AcademicRecord" contienen subcampos. El uso de soportes rizados muestra el número total de registros en una colección y el número total de campos dentro de un campo específico. Los registros se han agregado perfectamente.

Prueba> DB.Prueba.insertar (nombre: "tina", personalDetails: [edad: 44, correo electrónico: "[email protected] "],
... AcademicRecord: [Calificación: "BS", CGPA: 3.8])
DeprecationWarning: Colección.insert () está en desuso. Use InsertOne, InsertMany o BulkWrite.

Reconocido: verdadero,
insertedids: '0': objectId ("63b389fda7ac5549359eba32")

Para que se muestren todos los registros en el shell MongoDB, utilizaremos la función find () dentro de la misma instrucción después del nombre de la colección que también sigue la función foreach (). La función foreach () imprime los registros en formato JSON como se muestra a continuación.

Prueba> DB.Prueba.encontrar().foreach (printjson)

_ID: ObjectId ("63B389FDA7AC5549359EBA32"),
Nombre: 'Tina',
Detalles personales: [

Edad: 44,
Correo electrónico: '[email protected] '

],
Record academico: [

Calificación: 'BS',
CGPA: 3.8

]

Es hora de usar el operador "tamaño" para mostrar solo el registro con un número específico de campos en él. Por lo tanto, lo utilizamos en la función find () para obtener el registro donde el campo PersonalDetails tiene 2 registros de campo separados, cada registro dentro de los soportes . La salida no muestra nada porque ningún registro tiene 2 campos dentro del campo PERSONALDETAILS.

Prueba> DB.Prueba.find (personalDetails: $ size: 2)

Al establecer el valor del operador "tamaño" en 1 y ejecutar la instrucción actualizada, tenemos todo el registro con sus campos anidados que se muestran en nuestra pantalla de shell MongoDB como se muestra a continuación. La razón detrás de esta pantalla es clara: PersonalDetails tiene 1 registro según los soportes .

Prueba> DB.Prueba.find (personalDetails: $ size: 1)
[

_ID: ObjectId ("63B389FDA7AC5549359EBA32"),
Nombre: 'Tina',
PersonalDetails: [edad: 44, correo electrónico: '[email protected] '],
AcademicRecord: [Calificación: 'BS', CGPA: 3.8]

]

Ejemplo # 02:

Agregamos otro registro del mismo formato en la colección "Prueba" para ver si el operador de tamaño funciona en múltiples registros o no. Se esperaba que la misma consulta de inserción agregara registros para la persona "Beba". Aunque hemos agregado más de un campo dentro de la matriz personal de colas y académicos académicos, agregar estos campos dentro de un par de soportes rizados los considera como un registro.

Prueba> DB.Prueba.insertar (nombre: "Beba", personalDetails: [edad: 44, correo electrónico: "[email protected] ", City:" California "], AcademicRecord: [Calificación:" MS ", CGPA: 3.9])

Reconocido: verdadero,
insertedids: '0': objectId ("63b38c57a7ac5549359eba33")

Después de agregar el segundo registro, probamos la misma consulta para mostrar los registros que tenemos en la colección "Test". Ambos registros se mostraron en el formato estándar de matrices en MongoDB.

Prueba> DB.Prueba.encontrar().bonito()
[

_ID: ObjectId ("63B389FDA7AC5549359EBA32"),
Nombre: 'Tina',
PersonalDetails: [edad: 44, correo electrónico: '[email protected] '],
AcademicRecord: [Calificación: 'BS', CGPA: 3.8]
,

_id: ObjectId ("63B38C57A7AC5549359EBA33"),
Nombre: 'Beba',
PersonalDetails: [edad: 44, correo electrónico: '[email protected] ', ciudad:' California '],
AcademicRecord: [Calificación: 'MS', CGPA: 3.9]

]

Ejecutemos la consulta de la función "Buscar" para mostrar los registros de una colección de pruebas mientras utilizamos el valor del operador "$ Tamaño" establecido en "3" que se ha aplicado al campo PERSONALSDETAILS. Como el campo de las colas personales no contiene más de 1 campo por ahora, por lo tanto, la salida es nula.

Prueba> DB.Prueba.find (personalDetails: $ size: 3).bonito()

Ahora, actualizar el valor del operador "$ set" a 1 como se demuestra en la consulta a continuación. El valor establecido "1" demuestra que el único registro se mostrará en la pantalla de la consola donde el campo "Peronaldetails" tiene un solo registro en él. Como ambos registros principales que hemos agregado, mantenga campos individuales dentro del campo de las declive personal.mi. , ambos registros se muestran.

Prueba> DB.Prueba.find (personalDetails: $ size: 1).bonito()
[

_ID: ObjectId ("63B389FDA7AC5549359EBA32"),
Nombre: 'Tina',
PersonalDetails: [edad: 44, correo electrónico: '[email protected] '],
AcademicRecord: [Calificación: 'BS', CGPA: 3.8]
,

_id: ObjectId ("63B38C57A7AC5549359EBA33"),
Nombre: 'Beba',
PersonalDetails: [edad: 44, correo electrónico: '[email protected] ', ciudad:' California '],
AcademicRecord: [Calificación: 'MS', CGPA: 3.9]

]

Ejemplo # 03:

Insertemos un nuevo registro en la colección "Prueba" a través de la función "Insertar". Esta vez, elegimos agregar 3 campos dentro del campo PERSONALSDETAILS de esta colección, mientras que el campo "Academicrecord" contiene 2 registros dentro de él. Aplicaremos el operador de "tamaño".

Prueba> DB.Prueba.insertar (nombre: "Paul", personalDetails: [edad: 43, correo electrónico: "[email protected] ", City:" Texas "], AcademicRecord: [Calificación:" PhD ", CGPA: 4])

Reconocido: verdadero,
insertedids: '0': objectId ("63b38d59a7ac5549359eba34")

Ahora que hemos agregado un registro anidado en la colección "Prueba", lo mostraremos en la pantalla de la consola utilizando la instrucción de función find (). Para mostrar un registro específico, debemos mencionar el nombre de cualquier campo seguido de su valor dentro de un registro específico i.mi., Para mostrar el registro donde el campo "Nombre" tiene su valor "Paul". Solo se mostró el último registro agregado.

Prueba> DB.Prueba.encontrar (nombre: "Paul")
[

_id: ObjectId ("63B38D59A7AC5549359EBA34"),
Nombre: 'Paul',
PersonalDetails: [edad: 43, correo electrónico: '[email protected] ', City:' Texas '],
AcademicRecord: [Calificación: 'PhD', CGPA: 4]

]

Vamos a sumergirnos en el ejemplo de la consulta para mostrar los registros de una colección "prueba" para mostrar solo el registro con su tamaño de campo de cola personal igual a 3 i.mi., tener 3 campos dentro de él. Para esto, intente la misma función Find () seguida del nombre de campo "PersonalDetails", "$ size" operador y la función bonito () para mostrar la salida en una matriz. El último registro que acabamos de agregar se ha mostrado en la consola, ya que su matriz de "cola personal" contiene 3 registros de campo en ella.

Prueba> DB.Prueba.find (personalDetails: $ size: 3).bonito()
[

_id: ObjectId ("63B38D59A7AC5549359EBA34"),
Nombre: 'Paul',
PersonalDetails: [edad: 43, correo electrónico: '[email protected] ', City:' Texas '],
AcademicRecord: [Calificación: 'PhD', CGPA: 4]

]

Conclusión

Después de pasar por esta guía junto con tres de los ejemplos de código mencionados, podrá buscar el campo de matriz específico desde un registro de datos específico que contiene solo el número establecido de elementos a través del operador de tamaño de MongoDB. Hemos discutido cómo se puede utilizar una matriz de campo múltiple en el registro para que el operador de tamaño funcione utilizando la instrucción de función find (). En estas ilustraciones, el campo de tamaño funciona para que se muestren todos esos registros que tienen un campo específico con un número específico de registros en él.