Devo trovare l'ultima voce in una tabella. Qual è il modo migliore per farlo? La tabella ha il campo predefinito di Sequelize createdAt
.Sequelize findOne latest entry
risposta
Il metodo findOne
è un wrapper per il metodo findAll
. Quindi puoi semplicemente usare findAll
con il limite 1 e ordinare da id decrescente.
Esempio:
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]
});
model.findOne({
where: {
key: key,
},
order: [ [ 'createdAt', 'DESC' ]],
});
Hi szym; il tuo codice potrebbe essere corretto, ma con qualche contesto sarebbe una risposta migliore; ad esempio, potresti spiegare come e perché questo cambiamento proposto risolverà il problema del questionario, forse includendo un link alla documentazione pertinente. Ciò lo renderebbe più utile per loro e anche più utile per altri lettori di siti che sono alla ricerca di soluzioni a problemi simili. –
No. Semplice domanda. Risposta semplice Non hai bisogno di più di quello. Stavo cercando la risposta da solo e questa informazione è esattamente ciò che stavo cercando da solo. Nel caos di troppe informazioni, spesso meno è di più. – szym
Credo che si intende 'createdAt', non' id' on line 6. Inserito una modifica: http://stackoverflow.com/suggested-edits/2345804 – Noah
Solitamente l'ID è l'incremento automatico. Pertanto il valore più alto di id indica l'ultima voce aggiunta. Ma sì, potresti usare 'createdAt'. –
Se si è sicuri di preferire createAt, accetterò la modifica. –