Sequelicare come trovare righe con più clausole e timestamp> ora ()
-
28-10-2019 - |
Domanda
Come faccio a farlo con sequel?
SELECT FROM sessions WHERE user_id = ? AND token = ? AND expires > NOW()
Ecco cosa sto cercando di fare (supponiamo Session
è un modello sequelis):
Session.find({
where: {
user_id: someNumber,
token: someString,
//expires > NOW() (how do I do this?)
}
}).on('success', function (s) { /* things and stuff */ });
Grazie!
Soluzione
Hai provato a usare la notazione dell'array di Finders in Sequelis?
Session.find({
where: ['user_id=? and token=? and expires > NOW()', someNumber, someString]
}).on('success', function (s) { /* things and stuff */ });
Puoi controllare questa pagina: http://sevelizejs.com/?active=find-objets#find-objets
Spero che funzioni. Altrimenti è un bug: D
Altri suggerimenti
Si prega di notare che a partire da questa pubblicazione e la versione più recente di SequeLize, le risposte sopra sono obsolete. Sto pubblicando la soluzione che ho lavorato nella speranza di salvare qualcuno un po 'di tempo.
filters["State"] = {$and: [filters["State"], {$not: this.filterSBM()}] };
Nota il $ e l'array all'interno dell'oggetto JSON e la mancanza di? Sostituzione simbolica.
O mettere in un modo più generale, dal momento che potrebbe aiutare qualcuno a avvolgere la testa attorno ad esso:
{ $and: [{"Key1": "Value1"}, {"Key2": "Value2"}] }
Un altro metodo:
Session.find({
where: {
user_id: someNumber,
token: someString,
expires: {
$gt: (new Date())
}
}
}).on('success', function (s) { /* things and stuff */ });