2016-07-04 4 views
0

を注文し、私は2つのIDの配列を持っている:Sequelize - multipleIDとクエリとない

placeids = [22,14] 

それから私は、このクエリを持っている:

models.Places.findAll({ 
      where: { 
       id: {in: [ placeids ]} 
      } 

    }).then(function (places) { 
     response(places).code(200); 
    }, function (rejectedPromiseError) { 
     response(rejectedPromiseError).code(401); 
    });  

私は結果が正確なレコードを返したい、道を私はそれらを私のケース22と14で要求しました。

Sequelizeはそれらを返しますが、降順でそれらを注文します。だから私の場合は14と22を返します。

これはどのように対処できますか?

models.Places.findAll({ 
    where: { 
     id: {in: [placeids]} 
    }, 
    order: 'id DESC' 
}); 

または、手動で発注を行うことができます:あなたはsequelizeorderパラメータ渡すことができます

+0

を、それがそうするSQLデータベースです。その順序に影響を与えることができるかどうかは、データベースがそのようなことをサポートしているかどうかによって異なります(MySQLは、[この回答](http://stackoverflow.com/a/396771/893780)参照)。 – robertklep

答えて

1

私はSequelizeの注文にそれらを疑う

.then(function (places) { 
    places.sort(function (x, y) { 
     return placeids.indexOf(x.id) > placeids.indexOf(y.id) 
    }); 
    return places; 
}); 
関連する問題