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

90
Vistas
Encuentre documentos con propiedades que contengan claves dinámicas

Tengo algunas dudas para filtrar datos de algunos documentos que tienen un campo mixto, he notado que mongoose toma campos mixtos no como un objeto, sino como una matriz de 'cualquier' dato, o algo así, estoy en una investigación todavía, bueno, mi esquema se parece al siguiente ejemplo:

 export const ProductSchema = createSchema({ active: Type.boolean({ default: true }), available: Type.boolean({ default: true }), balance: Type.number({ default: 0 }), typeMerc: Type.mixed({ default: {} }) }, { timestamps: true });

Por ejemplo, necesito encontrar documentos en los que mi objeto typeMerc contenga la clave 'ad0a' (dentro de typeMerc), mis documentos se ven así:

 { _id: ObjectId('6115b8e219f684ac15823') active: true available: true balance: 12 typeMerc: { ad0a: { props: "faa0e" data: "anyString" }, f0ea: { props: "fa45d", data: "anyString" } } }

Si pruebo compás el siguiente código, obtengo los datos correctamente:

 { 'typeMerc.ad0a': { $exists: true }}

Luego, en mi código he intentado algo como:

 const searchId = 'ad0a' Product.find({ `typeMerc.${searchId}`: { $exists: true } }) Product.find({ `typeMerc.$.${searchId}`: { $exists: true } }) Product.find({ typeMerc[`${searchId}`]: { $exists: true } }) Product.find({ typeMerc[searchId]: { $exists: true } })

Pero sin éxito.

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Tienes que poner la cadena entre corchetes.

 const searchId = 'ad0a' Product.find({ [`typeMerc.${searchId}`]: { $exists: true } })
about 4 years ago · Santiago Gelvez 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