2016-05-22 5 views
0

Ich habe Code wie folgt aus:Wie Abfrage Instanz mit "INQ" und Reihenfolge von "INQ" in StrongLoop Loopback?

// inq is array of id 
var inq = ["002216", "000018", "000197"]; 
var filterExt = { where: { id: { inq: inq } }; 

Radio.find(filterExt, function(err, results){ 
    if(err) cb(err); 
    else { 
     // results's index is always following "id" order 
     cb(null, results); 
    } 
}); 

Meine erwarteten Ergebnisse ist die Anordnung der Ergebnisse haben, sind gleiche Reihenfolge wie „inq“. Aber die Reihenfolge der Ergebnisse folgt immer der Reihenfolge "id". Gibt es eine Möglichkeit, die gleiche Ergebnisreihenfolge mit inq-Reihenfolge zu erhalten?

Danke.

+0

warum möchten Sie sie in dieser Reihenfolge? Wofür verwenden Sie es? – Jonathan

Antwort

0

Markieren Sie das Ergebnis mit dem Bezeichner und verwenden Sie es dann in der Schleife. Beispiel mit Bibliothek "lodash" (Zuordnung nach Schlüssel).

var __ = require('lodash'); 

// inq is array of id 
var inq = ["002216", "000018", "000197"]; 
var filterExt = { 
    where: { 
     id: { 
      inq: inq 
     } 
    } 
}; 

Radio.find(filterExt, function(err, results) { 
    if (err) cb(err); 
    else { 
     var map = __.keyBy(results, "id"); 
     for(var id in inq) { 
      var row = map[id]; 
     } 

     cb(null, results); 
    } 
}); 
Verwandte Themen