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

117
Vistas
consulta de búsqueda de mangosta para realizar múltiples condiciones

Tengo dos tablas de proveedor y de proveedorOrg. Necesito devolver la lista basada en los criterios de la tabla de vendorOrg en cuanto a la categoría.

 const vendors = [{ "name" : "Alfred", "location" : "FH", "vendorOrgId" : "1" }, { "name" : "Alfred", "location" : "ADH", "vendorOrgId" : "2" }, { "name" : "Alfred", "location" : "AFF", "vendorOrgId" : "41" }] const vendorOrg = [ { "orgName" : "star super market", "vendorOrgId" : "1", "category" : "grocery", "status" : "active" }, { "orgName" : "Lf super market", "vendorOrgId" : "41", "category" : "grocery", "status" : "active" }, { "orgName" : "Fresh mart", "vendorOrgId" : "2", "category" : "Milk", "status" : "active" } ]

Encuentre las condiciones a continuación, 1. La tabla de proveedor de VendorOrgId debe ser la misma que la identificación de la tabla de VendorOrg. 2. El estado de la tabla de vendorOrg debe estar activo. si las condiciones anteriores son verdaderas, la i necesita una lista de proveedores por categorías, según la categoría de la tabla de vendorOrg.

 { "grocery": [{ "name": "Alfred", "location": "FH", "vendorOrgId": "1" }, { "name": "Alfred", "location": "AFF", "vendorOrgId": "41" } ], "milk": [{ "name": "Alfred", "location": "ADH", "vendorOrgId": "2" }] }

¿Es posible hacerlo con mangosta? ¡Gracias!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

  • $lookup con la colección de registros de proveedores y pase vendorOrgId a la canalización de búsqueda
  • $match las condiciones requeridas
  • $project para mostrar los campos obligatorios
  • $unwind org matriz de organización
  • $group por org category de organización y construir una matriz de vendors
  • $group por nulo y construir una matriz en formato clave-valor
  • $arrayToObject convertir matriz de par clave-valor en objeto
  • $replaceRoot para reemplazar el objeto a la raíz
 db.vendors.aggregate([ { $lookup: { from: "vendorOrg", let: { vendorOrgId: "$vendorOrgId" }, pipeline: [ { $match: { $expr: { $eq: ["$$vendorOrgId", "$vendorOrgId"] }, status: "active" } }, { $project: { _id: 1, category: 1 } } ], as: "org" } }, { $unwind: "$org" }, { $group: { _id: "$org.category", vendors: { $push: { name: "$name", location: "$location", vendorOrgId: "$vendorOrgId" } } } }, { $group: { _id: null, vendors: { $push: { k: "$_id", v: "$vendors" } } } }, { $replaceRoot: { newRoot: { $arrayToObject: "$vendors" } } } ])

Patio de recreo

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