MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

como concatenar vários resultados do mangusto para um JSON Array para exibir no DataTable?


Você pode usar async.series() para executar cada tarefa. Cada tarefa, por exemplo getBranches() e getSerials() irá "retornar" uma matriz de dados. Quando a série estiver concluída, você deverá ter uma matriz de matriz de dados, portanto, precisará achatá-la.
async.series([
    function getBranches(done) {
        async.mapSeries(branch_name, function (item, done) {
            // FYI 'done' inside this function is not the same 'done' as outside the function
            // ...
        }, done);
    },
    function getSerials(done) {
        async.mapSeries(serial, function (r_serial_no, done) {
            // ...
        }, done);
    },
    // etc
], function (err, data) {
    // data should come back as multidimensional array
    // so you should only need to flatten it
    var finalJSON = [].concat.apply([], data);
});

Veja esta resposta em relação ao achatamento de uma matriz de matrizes em JavaScript.

Editar :nunca usei async.concatSeries() antes, mas pode ser mais curto.