2013-12-21 13 views
22
Post 
    .findAll({where: {tag: 'news'}, limit: 10}) 
    .success(function(result) { ... }) 

Wie die Bedingung der Sortierung nach Datum in meiner Abfrage einfügen mit nicht sequelize.query wiesortieren sequelize.js Abfrage nach Datum

.findAll({ limit: 10, sort: [updatedAt, descending]}) 

Antwort

21

Hier verwendet die Syntax:

Post.findAll({ limit: 10, order: '"updatedAt" DESC' }) 

Hier sind mehr examples aus der offiziellen Dokumentation.

+0

Dies führt zu einem Fehler: Spalte "updatedat" existiert nicht –

+3

'"updatedAt" DESC 'funktioniert jedoch einwandfrei –

+2

Scheint nicht mehr in neueren Versionen von Sequelize (ich benutze 4.4) zu arbeiten, aber Clarkies Antwort funktionierte. Die Fehlermeldung, die ich von dieser Methode erhalten habe, scheint darauf hinzudeuten, dass sie veraltet war: "Unbehandelte Ablehnung Fehler: Reihenfolge muss vom Typ des Arrays oder der Instanz einer gültigen Sequelize-Methode sein." – Josh1billion

58

@dankohn ist richtig, und das wird funktionieren, aber es ist sicherer, die folgende zu verwenden: Nach

Post.findAll({ limit: 10, order: [['updatedAt', 'DESC']]}); 

als diese

will escape updatedAt and validate DESC against a list of valid direction parameters

+0

Richtige Antwort, ausgewählte Antwort ist veraltet. – Sandwich

1

ist mehr saubere Syntax

Post.findAll({ limit: 10, order: 'updatedAt DESC'});