sql >> Databasteknik >  >> NoSQL >> MongoDB

hur man sammanfogar olika mongoose-resultat till en JSON-array för att visa på DataTable?

Du kan använda async.series() att köra varje uppgift. Varje uppgift t.ex. getBranches() och getSerials() kommer att "returnera" en mängd data. När serien är klar bör du ha en rad med data, så du måste platta till den.

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

Se detta svar angående utjämning av en array av arrayer i JavaScript.

Redigera :Jag har aldrig använt async.concatSeries() innan men det kanske vara kortare.




  1. Hantera anslutningar

  2. Laravel "gilla"-fråga med MongoDB-anslutning

  3. primära skärvor i mongodb

  4. MongoDB Node hittade hur man hanterar inga resultat?