Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

69
Vistas
Consultando por un objeto vs matriz

¿Cómo consulto un objeto frente a una matriz de objetos en un documento?

Necesito seleccionar todos los documentos que son como Dataset 2.

Conjunto de datos 1:

 { 'firstname' : 'John', 'lastname': 'Smith', 'assistance': [ {'type': 'Food', 'amount': 20} ] }

Conjunto de datos 2:

 { 'firstname' : 'John', 'lastname': 'Smith', 'assistance': { 'type': 'Food', 'amount': 20 } }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

puede usar $type , $type no funcionará para dataset1, la razón es que no verifica si el campo es una matriz o no, lo que verifica es que el campo contiene una matriz o no.

Pero si está buscando el conjunto de datos 2, puede usar $type para el objeto

 db.whatever.find( { "assistance" : { $type : 3 } } );

o

 db.whatever.find( { "assistance" : { $type : "object" } } );
over 4 years ago · Santiago Trujillo Denunciar

0

MongoDB almacena datos en formato BSON .

BSON significa Binario JSON .

BSON admite varios tipos de datos para valores en documentos.

Según la documentación de MongoDB

$type selecciona los documentos donde el valor del campo es una instancia del tipo BSON especificado.

Según los documentos antes mencionados

Conjunto de datos 1: el tipo de datos del campo de asistencia es una matriz.

Dataset2: el tipo de datos del campo de asistencia es un objeto.

Para recuperar solo los documentos que contienen la clave de asistencia que tiene un objeto como tipo de datos, intente ejecutar la siguiente consulta en el shell de MongoDB.

db.colección.find({asistencia:{$tipo:3}})

Para obtener una descripción más detallada de los tipos de BSON, consulte la documentación que se menciona en la siguiente URL

https://docs.mongodb.com/manual/reference/bson-types/

over 4 years ago · Santiago Trujillo Denunciar

0

db.foo.find( { "assistance" : { $type : 3 } } ); // 3 is bson type for object

devolverá tanto los documentos como

 db.foo.find( { "assistance" : { $type : 4 } } ); // 4 is bson type for object

no devolverá ninguno de los dos documentos.

Esto se debe a que en mongodb, cuando se consulta una matriz, los elementos de la matriz se verifican en la matriz completa.

Puede eliminar todos los elementos donde la asistencia es de tipo matriz:

 db.foo.find({"assistance.0" : {$exists : false}})
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda