D'accord, j'ai un projet dans NodeJS où j'utilise Sequelize pour un ORM MySQL. La chose fonctionne de manière fantastique mais j'essaie de comprendre s'il y a un moyen de spécifier quels champs sont retournés sur une base de requête ou s'il y a juste un moyen de faire un .query() quelque part. Par exemple, dans notre base de données utilisateur, il peut y avoir des quantités ridicules d'enregistrements et de colonnes. Dans ce cas, je dois retourner trois colonnes seulement, donc il serait plus rapide d'obtenir seulement ces colonnes. Cependant, Sequelize interroge simplement la table pour tout "*" afin de remplir autant que possible le modèle objet complet. C'est la fonctionnalité que je voudrais contourner dans cette zone particulière de l'application.Spécification de champs spécifiques avec Sequelize (NodeJS) au lieu de *
24
A
Répondre
43
Vous devez spécifier les attributs en tant que propriété de l'objet que vous passez à findAll():
Project.findAll({attributes: ['name', 'age']}).on('success', function (projects) {
console.log(projects);
});
Comment j'ai trouvé ceci:
La requête est d'abord appelée ici: https://github.com/sdepold/sequelize/blob/master/lib/model-definition.js#L131
puis se construit ici: https://github.com/sdepold/sequelize/blob/master/lib/connectors/mysql/query-generator.js#L56-59
+1
Hey pouvez-vous s'il vous plaît vérifier les liens, ils semblent être brisés – sunitj
4
Essayez ceci dans la version nouvelle
template.findAll({
where: {
user_id: req.params.user_id //array
},
attributes: ['id', 'template_name'], //object
}).then(function (list) {
res.status(200).json(list);
})
Questions connexes
- 1. Fichiers spécifiques au déploiement dans NodeJS
- 2. Combiner deux champs nommés avec OU (au lieu de AND)
- 3. Protéger des champs spécifiques lors de la liaison au printemps
- 4. Mise à jour de plusieurs enregistrements à l'aide de sequelize et nodejs?
- 5. NodeJS MySQL ORM avec clés primaires composites et longueurs VARCHAR spécifiques
- 6. ListView montre quelques chiffres au lieu des champs de l'objet
- 7. Ajax Live Search - Obtenir 2 champs au lieu de 1
- 8. associations sequelize
- 9. Utiliser des méthodes abstraites au lieu de champs
- 10. Comment ajouter beaucoup de données au modèle Sequelize?
- 11. Héritage dans ExpressJS avec Sequelize
- 12. comment accéder redis de manière bloquante au lieu de non-bloquant (rappel d'événement) dans nodejs
- 13. Django: Spécification de HASH au lieu de BTREE pour la colonne indexée
- 14. Alias pour l'action de la route de ressources spécifiques («/de sign_in » au lieu de «/sessions/nouvelles »)
- 15. CouchDB: trouver et de retour des champs spécifiques
- 16. Utilisation de Java dans la spécification Gadget xml au lieu de javascript
- 17. (. *) Au lieu de (. *?)
- 18. Bouton de réinitialisation pour des champs spécifiques
- 19. Sélection de champs spécifiques avec Facebook graphique api
- 20. INSERT au lieu de UPDATE avec Hibernate
- 21. ActionLink avec paramètre après? au lieu de/
- 22. izip_longest avec boucle au lieu de fillvalue
- 23. ISAPI Rewrite avec au lieu de mod_rewrite
- 24. Au lieu de Supprimer Trigger avec FileStream
- 25. Noms d'affichage des champs de vue spécifiques
- 26. spécification de modèle avec glider
- 27. Échec de la migration de Sequelize (postgres)
- 28. wsdl2java CXF - générer la liste JAXBElement au lieu des champs
- 29. Chargement de jQuery avec NodeJS
- 30. Routeur (proxy) avec NodeJS?
oh wow, il y a maintenant de la documentation à ce sujet: -/lame. alessioalex a raison. – sdepold