我有这样的代码:
// 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);
}
});
我的预期结果是结果数组与“inq”具有相同的顺序。但结果顺序始终遵循“id”顺序。有没有办法用inq命令获得相同的结果顺序?
感谢。
答案 0 :(得分:0)
用标识符标记结果,然后在循环中使用它。 图书馆示例" lodash" (按键映射)。
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);
}
});