web-dev-qa-db-ja.com

sequelizeで行の個別の値を取得する方法は?

私は値を持つテーブルを持っています

id country 
1  india
2  usa
3  india

Sequelize.jsを使用して国列から個別の値を見つける必要があります

ここに私のサンプルコード...

Project.findAll({

    attributes: ['country'],
    distinct: true
}).then(function(country) {
     ...............
});

ディスティック値を見つける方法はありますか

8
made_in_india

これで試してください: https://github.com/sequelize/sequelize/issues/2996#issuecomment-141424712

Project.aggregate('country', 'DISTINCT', { plain: false })
.then(...)

Sequelize.fnを使用して、1つ以上の属性にdistinctを指定できます

Project.findAll({
    attributes: [
        // specify an array where the first element is the SQL function and the second is the alias
        [Sequelize.fn('DISTINCT', Sequelize.col('country')) ,'country'],

        // specify any additional columns, e.g. country_code
        // 'country_code'

    ]
}).then(function(country) {  })
31
djones

私はこのようなグループ化を使用することになりました:

Project.findAll({
  attributes: ['country'],
  group: ['country']
}).then(projects => 
  projects.map(project => project.country)
);

その結果、適切に反復できる個別のモデルが作成されます。

以前の回答のリンクは少し役立ちました: https://github.com/sequelize/sequelize/issues/2996#issuecomment-141424712

これもうまくいきますが、列名としてDISTINCTを使用して応答を生成します。

Project.aggregate('country', 'DISTINCT', { plain: false })
  .then(...)
4
Jurosh