Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // [
- // {
- // _id:"5be8d00dd98d9b11ecfe7231",
- // nombreCom:"Transitor",
- // referenciaCom: "2N2222",
- // tipo:"NPN",
- // empaque:"TO92",
- // cantidad:20
- // },
- // {
- // _id:"5be8d00dd98d9b11ecf12038",
- // nombreCom:"Transitor",
- // referenciaCom: "Tip31c",
- // tipo:"NPN",
- // empaque:"TO220",
- // cantidad:10
- // },
- // {
- // _id:"5be8d00dd98d9b11ecf4a2d4",
- // nombreCom:"Transitor",
- // referenciaCom: "2N3906",
- // tipo:"PNP",
- // empaque:"TO92",
- // cantidad:10
- // },
- // {
- // _id:"5be8d00dd98d9b11ecf1b2b3",
- // nombreCom:"condensador",
- // referenciaCom: "22 Mf",
- // tipo:"electrolitico",
- // empaque:"N/A",
- // cantidad:24
- // },
- // {
- // _id:"5be8d00dd98d9b11ecf5c4c3",
- // nombreCom:"condensador",
- // referenciaCom: "0.1 Nf - 104",
- // tipo:"ceramico",
- // empaque:"N/A",
- // cantidad:79
- // },
- // {
- // _id:"5be8d00dd98d9b11ecfc37d1",
- // nombreCom:"cable",
- // referenciaCom: "AWG 12",
- // tipo:"Homologado",
- // empaque:"N/A",
- // cantidad:230
- // },
- // {
- // _id:"5be8d00dd98d9b11ecfe4a21",
- // nombreCom:"cable",
- // referenciaCom: "AWG 18",
- // tipo:"Sin Homologar",
- // empaque:"N/A",
- // cantidad:530
- // }
- // ]
- // [
- // {
- // _id:"5be8d00dd98d9b11ecf1d20",
- // nombres:"Andres",
- // apellidos: "Jimenez Roa",
- // reporteUso:[
- // {
- // _id:"5be8d00dd98d9b11ecf9d2a1",
- // componenteUsado:[
- // "5be8d00dd98d9b11ecfe7231",
- // "5be8d00dd98d9b11ecf4a2d4",
- // "5be8d00dd98d9b11ecf5c4c3"
- // ],
- // fechaUso:"..la Fecha.."
- // },
- // {
- // _id:"5be8d00dd98d9b11ecf00321",
- // componenteUsado:[
- // "5be8d00dd98d9b11ecfc37d1"
- // ],
- // fechaUso:"..la Fecha.."
- // }
- // ],
- // emailUser:"andres@xyz.com",
- // password:"*********"
- // },
- // {
- // _id:"5be8d00dd98d9b11ecd3a12",
- // nombres:"Felipe",
- // apellidos: "Castro Roa",
- // reporteUso:[], //NADA ALMACENADO
- // emailUser:"felipe@xyz.com",
- // password:"*********"
- // },
- // {
- // _id:"5be8d00dd98d9b11ecd3a12",
- // nombres:"Driana",
- // apellidos: "Perez Gacha",
- // reporteUso:[
- // {
- // _id:"5be8d00dd98d9b11ecf9d2a1",
- // componenteUsado:[
- // "5be8d00dd98d9b11ecfc37d1",
- // "5be8d00dd98d9b11ecfe4a21"
- // ],
- // fechaUso:"..la Fecha.."
- // },
- // {
- // _id:"5be8d00dd98d9b11ecf00321",
- // componenteUsado:[
- // "5be8d00dd98d9b11ecfc37d1",
- // "5be8d00dd98d9b11ecfe4a21"
- // ],
- // fechaUso:"..la Fecha.."
- // }
- // ],
- // emailUser:"driana@xyz.com",
- // password:"*********"
- // }
- // ]
- //===================================
- //definir mongoose schemas
- let sch_Componente = {
- //..se define el schema...
- };
- let sch_Trabajador = {
- //..se define el schema...
- };
- //===================================
- //definir modelos mongoose
- //no pluralizo los nombres de colecciones
- let modelComponente = mongoose.model("componente", sch_Componente);
- let modelTrabajador = mongoose.model("trabajador", sch_Trabajador);
- //===================================
- //cursor de agregacion:
- let cursorAgg = modelTrabajador.aggregate([
- //busco por el _id del trabajador Andres Jimenez Roa
- //(convierto el string _id en ObjetoId )
- {$match : { _id : mongoose.Types.ObjectId("5be8d00dd98d9b11ecf1d20") }},
- //aplano el array de reporteUso:
- {$unwind : "$reporteUso"},
- //busco el _id del reporte de uso
- {$match : { "reporteUso._id" : mongoose.Types.ObjectId("5be8d00dd98d9b11ecf9d2a1") }},
- //Une los documentos con la coleccion componente
- {$lookup:
- {
- from: "componente",
- localField: "reporteUso.componenteUsado",
- foreignField: "_id",
- as: "reporteUso.componenteUsado"
- }
- },
- //aplanar el array de componenteUsado
- {$unwind:"$reporteUso.componenteUsado"},
- //Busco el empaque
- {$match:{"reporteUso.componenteUsado.empaque": "TO92"}},
- //----falta rearmar y proyectar---------
- //{$group:{_id:"$_id", reporteUso:{$push:"$reporteUso"}}},
- //{$project:{_id:1, nombres:1, apellidos:1, reporteUso:1, componenteUsado:1}}
- ]);
- //===================================
- // {
- // _id:"5be8d00dd98d9b11ecf1d20",
- // nombres:"Andres",
- // apellidos: "Jimenez Roa",
- // reporteUso:[
- // {
- // _id:"5be8d00dd98d9b11ecf9d2a1",
- // componenteUsado:[
- // {
- // _id:"5be8d00dd98d9b11ecfe7231",
- // nombreCom:"Transitor",
- // referenciaCom: "2N2222",
- // tipo:"NPN",
- // empaque:"TO92",
- // cantidad:20
- // },
- // {
- // _id:"5be8d00dd98d9b11ecf4a2d4",
- // nombreCom:"Transitor",
- // referenciaCom: "2N3906",
- // tipo:"PNP",
- // empaque:"TO92",
- // cantidad:10
- // }
- // ],
- // fechaUso:"..la Fecha.."
- // }
- // ]
- // }
Add Comment
Please, Sign In to add comment