MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie verkettet man verschiedene Mungo-Ergebnisse zu einem JSON-Array, um es in DataTable anzuzeigen?

Sie können async.series() verwenden um jede Aufgabe auszuführen. Jede Aufgabe z.B. getBranches() und getSerials() wird ein Array von Daten "zurückgeben". Wenn die Serie fertig ist, sollten Sie ein Array von Daten haben, also müssen Sie es glätten.

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);
});

Siehe diese Antwort zum Reduzieren eines Arrays von Arrays in JavaScript.

Bearbeiten :Ich habe noch nie async.concatSeries() verwendet vorher, aber es könnte kürzer sein.