2011-12-05 9 views
16

Come faccio a fare ciò con Sequelize?Sequenziare come trovare le righe con più clausole where e timestamp> NOW()

SELECT FROM sessions WHERE user_id = ? AND token = ? AND expires > NOW() 

Ecco quello che sto cercando di fare (assumere Session è un modello Sequelize):

Session.find({ 
    where: { 
     user_id: someNumber, 
     token: someString, 
     //expires > NOW() (how do I do this?) 
    } 
}).on('success', function (s) { /* things and stuff */ }); 

Grazie!

risposta

22

hai provato a utilizzare la notazione array dei finder in sequenza?

Session.find({ 
    where: ['user_id=? and token=? and expires > NOW()', someNumber, someString] 
}).on('success', function (s) { /* things and stuff */ }); 

Puoi esaminare questa pagina: http://sequelizejs.com/?active=find-objects#find-objects

Spero che questo funziona. In caso contrario, si tratta di un bug: D

+0

Ahh, il mio male ... credo che non mi rendevo conto che si potrebbe avere più di una sostituzione usando quel metodo. Grazie! – lakenen

+0

Nessun problema :) Prego! – sdepold

+0

puoi guardare http://stackoverflow.com/a/29952136/494954? :) – lakenen

1

Un altro metodo:

Session.find({ 
    where: { 
    user_id: someNumber, 
    token: someString, 
    expires: { 
     $gt: (new Date()) 
    } 
    } 
}).on('success', function (s) { /* things and stuff */ }); 
2

Si prega di notare che a partire da questo intervento e la versione più recente di sequelize, le risposte di cui sopra non sono aggiornati. Sto postando la soluzione che ho lavorato nella speranza di salvare qualcuno qualche volta.

filters["State"] = {$and: [filters["State"], {$not: this.filterSBM()}] }; 

Nota $ e l'array all'interno dell'oggetto JSON e la mancanza di? sostituzione del token.

O mettere in modo più generale, dal momento che potrebbe aiutare qualcuno avvolgere la testa intorno ad esso:

{ $and: [{"Key1": "Value1"}, {"Key2": "Value2"}] } 
+0

Sono felice di cambiare la risposta accettata, ma non ho il tempo di testare questo adesso. Forse se @sdepold vuole intervenire? – lakenen

Problemi correlati