2016-02-17 21 views

Odpowiedz

7

Metoda findOne jest opakowaniem dla metody findAll. Dlatego możesz po prostu użyć findAll z limitem 1 i kolejność id malejąco.

Przykład:

YourModel.findAll({ 
    limit: 1, 
    where: { 
    //your where conditions, or without them if you need ANY entry 
    }, 
    order: [ [ 'createdAt', 'DESC' ]] 
}).then(function(entries){ 
    //only difference is that you get users list limited to 1 
    //entries[0] 
}); 
+1

myślę znaczy 'createdAt', nie' id' na linii 6. Zgłoszony zmienił: http://stackoverflow.com/suggested-edits/2345804 – Noah

+0

Zazwyczaj id to auto increment. Dlatego najwyższa wartość id oznacza ostatni dodany wpis. Ale tak, możesz użyć 'createdAt'. –

+0

Jeśli masz pewność, że wolisz createdAt, zaakceptuję Twoją zmianę. –

13
model.findOne({ 
    where: { 
     key: key, 
    }, 
    order: [ [ 'createdAt', 'DESC' ]], 
}); 
+1

Cześć szym; Twój kod może być poprawny, ale z pewnym kontekstem będzie lepszą odpowiedzią; na przykład możesz wyjaśnić, w jaki sposób i dlaczego proponowana zmiana rozwiązałaby problem pytającego, być może zawierający link do odpowiedniej dokumentacji. Sprawiłoby to, że byłoby to dla nich bardziej użyteczne, a także bardziej przydatne dla innych czytelników witryny, którzy szukają rozwiązań podobnych problemów. –

+2

Nie. Proste pytanie. Prosta odpowiedź. Nie potrzebujesz więcej. Sam szukałem odpowiedzi i ta informacja jest dokładnie tym, czego szukałem. W chaosie zbyt wielu informacji często mniej znaczy więcej. – szym