Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not supports for aggregation queries #29

Open
ArpithaMobinius opened this issue Nov 15, 2019 · 1 comment
Open

Not supports for aggregation queries #29

ArpithaMobinius opened this issue Nov 15, 2019 · 1 comment

Comments

@ArpithaMobinius
Copy link

No description provided.

@urko-b
Copy link

urko-b commented Nov 29, 2019

Does anybody knows if they are going to fix this in aggregations?

I have this model:

const mongoose = require('mongoose');
const mongooseIntl = require('mongoose-intl');
const Schema = mongoose.Schema;
const functions = require('../../common/functions');

const Model = new Schema({
    id: { type: Schema.Types.String, required: true, unique: true },
    name: { type: Schema.Types.String, intl: true },
    goals: { type: Schema.Types.String, intl: true },
    department: { type: Schema.Types.String, intl: true },
    addressDirection: { type: Schema.Types.Mixed },
    workCenter: { type: Schema.Types.String, intl: true },
    hasEmployees: { type: Schema.Types.Boolean },
    workdayType: { type: Schema.Types.String, intl: true },
    report: { type: Schema.Types.String },
    tasks: { type: [Schema.Types.String] },
    educations: { type: Schema.Types.Mixed }, //formacion y ofimatica
    languages: { type: Schema.Types.Mixed, set: v => functions.processLanguage(v) },
    driverLicenses: { type: Schema.Types.Mixed }, //carnet conducir y carretillas
    competences: [{ type: Schema.Types.ObjectId, ref: 'competences' }],
    kpis: { type: [Schema.Types.String] },
    other: { type: Schema.Types.Mixed }, //otros puntos que se quieran identificar,  otros 1-4 
    category: { type: Schema.Types.String },
    area: { type: Schema.Types.String, intl: true },
    searchTags: { type: String }
}, { timestamps: true, versionKey: false, toJSON: { virtuals: true } });

//functions.processLanguage(
Model.plugin(mongooseIntl, { languages: process.env.LANG_AVAILABLE.split(','), defaultLanguage: process.env.LANG_DEFAULT });
Model.index({ searchTags: 'text' });
module.exports = mongoose.model('cardPositions', Model, 'cardPositions');

This is my controller find method:

module.exports.find = async ({ findBy = {}, projection = {} } = { findBy: {}, projection: {} }, language = process.env.LANG_DEFAULT) => {
    CardPositions.setDefaultLanguage(language);

    const aggregationPipe = [
        {
            $match: findBy
        },
        {
            $lookup: {
                from: 'competences',
                localField: "competences",
                foreignField: '_id',
                as: "competences"
            }
        },
        {
            $lookup: {
                from: 'reasigncardpositions',
                localField: "id",
                foreignField: 'cardPosition',
                as: "reasignCardPositions"
            }
        },
        {
            $lookup: {
                from: 'positions',
                localField: "reasignCardPositions.code",
                foreignField: 'code',
                as: "positions"
            }
        },
    ];
    return await CardPositions.aggregate(aggregationPipe);
};

This is the response with the aggregation:

{
    "_id": "5dde88a0611d34557e6416a9",
    "name": {
        "es": "Dirección General"
    },
    "goals": {
        "es": "Definir y aplicar la estrategia de la unión para conseguir la máxima rentabilidad y volumen de negocio de la forma más eficiente a corto, medio y largo plazo."
    },
    "department": {
        "es": "Dirección General"
    },
    "workdayType": {
        "es": "Ordinaria"
    },
    "area": {
        "es": "Dirección General"
    },
    "tasks": [
        "Enlace con los accionistas y propietarios.",
        "Objetivos de La Unión: Rentabilidad, volúmenes, posicionamiento comercial.",
        "Visión transversal: Subasta + centros de abastecimiento + cliente + usuario final + mercados + canales + marketing + comercial.",
        "Definición de la política comercial (Qué, a quién y cómo).",
        "Coordinación estratégica de Director de Ventas (DV), Director de Marketing (DM), Director de Compras (DC) y Director de Grandes Cuentas (DGC).",
        "Desarrollo y supervisión del DGC.",
        "Gestión de Recursos. Motivación y objetivación del Equipo Directivo.",
        "Presencia Institucional.",
        "Cuentas especiales (Dir. Cuenta).",
        "Otras responsabilidades del Negocio"
    ],
    "competences": [
        {
            "_id": "5dde88a0611d34557e641631",
            "name": "Adaptación y gestión del cambio",
            "createdAt": "2019-11-27T14:30:56.366Z",
            "updatedAt": "2019-11-27T14:30:56.366Z"
        },
        {
            "_id": "5dde88a0611d34557e641634",
            "name": "Orientación a resultados",
            "createdAt": "2019-11-27T14:30:56.373Z",
            "updatedAt": "2019-11-27T14:30:56.373Z"
        },
        {
            "_id": "5dde88a0611d34557e641635",
            "name": "Capacidad de Innovación",
            "createdAt": "2019-11-27T14:30:56.375Z",
            "updatedAt": "2019-11-27T14:30:56.375Z"
        },
        {
            "_id": "5dde88a0611d34557e64163b",
            "name": "Liderazgo",
            "createdAt": "2019-11-27T14:30:56.384Z",
            "updatedAt": "2019-11-27T14:30:56.384Z"
        },
        {
            "_id": "5dde88a0611d34557e64163d",
            "name": "Lealtad y sentido de pertenencia",
            "createdAt": "2019-11-27T14:30:56.388Z",
            "updatedAt": "2019-11-27T14:30:56.388Z"
        },
        {
            "_id": "5dde88a0611d34557e64163e",
            "name": "Orientación al cliente",
            "createdAt": "2019-11-27T14:30:56.390Z",
            "updatedAt": "2019-11-27T14:30:56.390Z"
        }
    ],
    "positions": [
        {
            "_id": "5d6f9b3454b234333843d69c",
            "name": {
                "es": "DIRECCION GENERAL"
            },
            "description": {
                "es": "DIRECCION GENERAL"
            },
            "id": "07a93326-a624-444b-a081-b1ea66737db1",
            "code": "00000076",
            "createdAt": "2019-11-27T14:30:56.454Z",
            "updatedAt": "2019-11-27T14:30:56.454Z"
        }
    ],
    "kpis": [],
    "id": "DNGL171198",
    "hasEmployees": true,
    "educations": {
        "studies": [
            "Titulación universitaria o grando superior en contabilidad y finanzas"
        ],
        "computerKnowledges": [
            "Usuario básico paquete Office"
        ]
    },
    "languages": {
        "english": "Inglés Alto"
    },
    "driverLicenses": {
        "hasForkliftTruckLicence": false,
        "B": false,
        "B_plus_E": false,
        "C": false,
        "C_plus_E": false,
        "D": false,
        "D_plus_E": false,
        "BTP": false
    },
    "other": {
        "other": [
            "MBA",
            "Liderazgo transformador"
        ]
    },
    "category": "DIRECTOR GENERAL",
    "searchTags": "DNGL171198 Dirección GeneralDefinir y aplicar la estrategia de la unión para conseguir la máxima rentabilidad y volumen de negocio de la forma más eficiente a corto medio y largo plazo.Dirección GeneralEnlace con los accionistas y propietarios. Objetivos de La Unión: Rentabilidad, volúmenes, posicionamiento comercial.,Visión transversal: Subasta + centros de abastecimiento + cliente + usuario final + mercados + canales + marketing + comercial.,Definición de la política comercial (Qué, a quién y cómo).,Coordinación estratégica de Director de Ventas (DV), Director de Marketing (DM), Director de Compras (DC) y Director de Grandes Cuentas (DGC).,Desarrollo y supervisión del DGC.,Gestión de Recursos. Motivación y objetivación del Equipo Directivo.,Presencia Institucional.,Cuentas especiales (Dir. Cuenta).,Otras responsabilidades del NegocioTitulación universitaria o grando superior en contabilidad y finanzas Usuario básico paquete OfficeI n,g,l,é,s, ,A,l,t,oMBA Liderazgo transformadorD I,R,E,C,T,O,R, ,G,E,N,E,R,A,LAdaptación y gestión del cambio Orientación a resultados,Capacidad de Innovación,Liderazgo,Lealtad y sentido de pertenencia,Orientación al cliente",
    "createdAt": "2019-11-27T14:31:07.728Z",
    "updatedAt": "2019-11-27T14:33:16.149Z",
    "report": null,
    "reasignCardPositions": [
        {
            "_id": "5dde88a0611d34557e641617",
            "code": "00000076",
            "cardPosition": "DNGL171198"
        }
    ]
}

And this is how should be returned:

{
        "name": "Dirección General",
        "goals": "Definir y aplicar la estrategia de la unión para conseguir la máxima rentabilidad y volumen de negocio de la forma más eficiente a corto, medio y largo plazo.",
        "department": "Dirección General",
        "workdayType": "Ordinaria",
        "area": "Dirección General",
        "tasks": [
            "Enlace con los accionistas y propietarios.",
            "Objetivos de La Unión: Rentabilidad, volúmenes, posicionamiento comercial.",
            "Visión transversal: Subasta + centros de abastecimiento + cliente + usuario final + mercados + canales + marketing + comercial.",
            "Definición de la política comercial (Qué, a quién y cómo).",
            "Coordinación estratégica de Director de Ventas (DV), Director de Marketing (DM), Director de Compras (DC) y Director de Grandes Cuentas (DGC).",
            "Desarrollo y supervisión del DGC.",
            "Gestión de Recursos. Motivación y objetivación del Equipo Directivo.",
            "Presencia Institucional.",
            "Cuentas especiales (Dir. Cuenta).",
            "Otras responsabilidades del Negocio"
        ],
        "competences": [
            {
                "_id": "5dde88a0611d34557e641631",
                "name": "Adaptación y gestión del cambio",
                "createdAt": "2019-11-27T14:30:56.366Z",
                "updatedAt": "2019-11-27T14:30:56.366Z"
            },
            {
                "_id": "5dde88a0611d34557e641634",
                "name": "Orientación a resultados",
                "createdAt": "2019-11-27T14:30:56.373Z",
                "updatedAt": "2019-11-27T14:30:56.373Z"
            },
            {
                "_id": "5dde88a0611d34557e641635",
                "name": "Capacidad de Innovación",
                "createdAt": "2019-11-27T14:30:56.375Z",
                "updatedAt": "2019-11-27T14:30:56.375Z"
            },
            {
                "_id": "5dde88a0611d34557e64163b",
                "name": "Liderazgo",
                "createdAt": "2019-11-27T14:30:56.384Z",
                "updatedAt": "2019-11-27T14:30:56.384Z"
            },
            {
                "_id": "5dde88a0611d34557e64163d",
                "name": "Lealtad y sentido de pertenencia",
                "createdAt": "2019-11-27T14:30:56.388Z",
                "updatedAt": "2019-11-27T14:30:56.388Z"
            },
            {
                "_id": "5dde88a0611d34557e64163e",
                "name": "Orientación al cliente",
                "createdAt": "2019-11-27T14:30:56.390Z",
                "updatedAt": "2019-11-27T14:30:56.390Z"
            }
        ],
        "kpis": [],
        "_id": "5dde88a0611d34557e6416a9",
        "positions": [],
        "id": "DNGL171198",
        "hasEmployees": true,
        "educations": {
            "studies": [
                "Titulación universitaria o grando superior en contabilidad y finanzas"
            ],
            "computerKnowledges": [
                "Usuario básico paquete Office"
            ]
        },
        "languages": {
            "english": "Inglés Alto"
        },
        "driverLicenses": {
            "hasForkliftTruckLicence": false,
            "B": false,
            "B_plus_E": false,
            "C": false,
            "C_plus_E": false,
            "D": false,
            "D_plus_E": false,
            "BTP": false
        },
        "other": {
            "other": [
                "MBA",
                "Liderazgo transformador"
            ]
        },
        "category": "DIRECTOR GENERAL",
        "searchTags": "DNGL171198 Dirección GeneralDefinir y aplicar la estrategia de la unión para conseguir la máxima rentabilidad y volumen de negocio de la forma más eficiente a corto medio y largo plazo.Dirección GeneralEnlace con los accionistas y propietarios. Objetivos de La Unión: Rentabilidad, volúmenes, posicionamiento comercial.,Visión transversal: Subasta + centros de abastecimiento + cliente + usuario final + mercados + canales + marketing + comercial.,Definición de la política comercial (Qué, a quién y cómo).,Coordinación estratégica de Director de Ventas (DV), Director de Marketing (DM), Director de Compras (DC) y Director de Grandes Cuentas (DGC).,Desarrollo y supervisión del DGC.,Gestión de Recursos. Motivación y objetivación del Equipo Directivo.,Presencia Institucional.,Cuentas especiales (Dir. Cuenta).,Otras responsabilidades del NegocioTitulación universitaria o grando superior en contabilidad y finanzas Usuario básico paquete OfficeI n,g,l,é,s, ,A,l,t,oMBA Liderazgo transformadorD I,R,E,C,T,O,R, ,G,E,N,E,R,A,LAdaptación y gestión del cambio Orientación a resultados,Capacidad de Innovación,Liderazgo,Lealtad y sentido de pertenencia,Orientación al cliente",
        "createdAt": "2019-11-27T14:31:07.728Z",
        "updatedAt": "2019-11-27T14:33:16.149Z",
        "report": null
    },

@alexsk Could you please tell us If you will improve this? thx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants