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

1K
Vistas
Cree un objeto json a partir de categorías y subcategorías agregadas a mongodb con jerarquía

Creé categorías en mongoDB usando el nodo, agregué la propiedad principal a cada inserción para determinar cuál es la categoría principal.

 [{ _id: 5889a06f274afdfd6f2bf249, cat_id: 1, title: 'Parent Category', description: '', parent: null, status: 1}] [{ _id: 5889a06f274afdfd6f2bf249, cat_id: 1, title: 'Child Category', description: '', parent: 1, status: 1}]

Ahora el json de salida debería estar usando el nodo cuando consulto usando el método db.find() de mongoDB.

 { obj: [ { _id: "5889a06f274afdfd6f2bf249", cat_id: 1, title: "Parent Category", description: "", parent: null, status: 1, subcategories: [ { _id: "5889a06f274afdfd6f2bf249", cat_id: 1, title: "Child Category", description: "", parent: 1, status: 1 } ] } ]}
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puedes probar algo como a continuación.

El valor de expresión $startWith para cada documento de entrada se compara con connectToField .

Para cada documento coincidente, el valor de connectFromField se compara recursivamente con el valor de connectToField en la colección.

Recopilación

 { "_id" : 1, "cat_id" : 1, "title" : "Parent Category", "parent" : null } { "_id" : 2, "cat_id" : 2, "title" : "Child Category", "parent" : 1 } { "_id" : 3, "cat_id" : 3, "title" : "Sub Child Category", "parent" : 2 }

Consulta

 Categories.aggregate([{ $graphLookup: { from: "categories", startWith: "$cat_id", connectFromField: "cat_id", connectToField: "parent", as: "subCategory" } }], callback)

Producción

 { "_id": 1, "cat_id": 1, "title": "Parent Category", "parent": null, "subCategory": [{ "_id": 3, "cat_id": 3, "title": "Sub Child Category", "parent": 2 }, { "_id": 2, "cat_id": 2, "title": "Child Category", "parent": 1 }] } { "_id": 2, "cat_id": 2, "title": "Child Category", "parent": 1, "subCategory": [{ "_id": 3, "cat_id": 3, "title": "Sub Child Category", "parent": 2 }] } { "_id": 3, "cat_id": 3, "title": "Sub Child Category", "parent": 2, "subCategory": [] }
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