J'ai une table avec valeur
id country
1 india
2 usa
3 india
J'ai besoin de trouver les valeurs distinctes de la colonne country en utilisant sequelize.js
ici mon exemple de code ...
Project.findAll({
attributes: ['country'],
distinct: true
}).then(function(country) {
...............
});
Existe-t-il un moyen de trouver les valeurs distict
Essayez avec ceci: https://github.com/sequelize/sequelize/issues/2996#issuecomment-141424712
Project.aggregate('country', 'DISTINCT', { plain: false })
.then(...)
Vous pouvez spécifier distinct pour un ou plusieurs attributs à l'aide de Sequelize.fn
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) { })
J'ai fini par utiliser le regroupement comme ceci:
Project.findAll({
attributes: ['country'],
group: ['country']
}).then(projects =>
projects.map(project => project.country)
);
Il en résulte des modèles distincts que vous pouvez joliment itérer.
Le lien dans la réponse précédente a aidé un peu: https://github.com/sequelize/sequelize/issues/2996#issuecomment-141424712
Cela fonctionne bien aussi, mais générer une réponse avec DISTINCT comme nom de colonne:
Project.aggregate('country', 'DISTINCT', { plain: false })
.then(...)