Secuestre cómo encontrar filas con múltiples donde las cláusulas y la marca de tiempo> ahora ()
-
28-10-2019 - |
Pregunta
¿Cómo hago esto con SECLELIZE?
SELECT FROM sessions WHERE user_id = ? AND token = ? AND expires > NOW()
Esto es lo que estoy tratando de hacer (suponga Session
es un modelo de secuelas):
Session.find({
where: {
user_id: someNumber,
token: someString,
//expires > NOW() (how do I do this?)
}
}).on('success', function (s) { /* things and stuff */ });
¡Gracias!
Solución
¿Intentaste usar la notación de matriz de buscadores en secuelas?
Session.find({
where: ['user_id=? and token=? and expires > NOW()', someNumber, someString]
}).on('success', function (s) { /* things and stuff */ });
Puede revisar esta página: http://sequelizejs.com/?active=find-objects#find-objects
Espero que esto funcione. De lo contrario, es un error: D
Otros consejos
Tenga en cuenta que a partir de esta publicación y la versión más reciente de Sequelize, las respuestas anteriores están desactualizadas. Estoy publicando la solución que obtuve trabajando con la esperanza de salvar a alguien algún tiempo.
filters["State"] = {$and: [filters["State"], {$not: this.filterSBM()}] };
¿Tenga en cuenta los $ y la matriz dentro del objeto JSON y la falta de? Reemplazo de tokens.
O poner de una manera más general, ya que eso podría ayudar a alguien a envolverlo:
{ $and: [{"Key1": "Value1"}, {"Key2": "Value2"}] }
Otro método:
Session.find({
where: {
user_id: someNumber,
token: someString,
expires: {
$gt: (new Date())
}
}
}).on('success', function (s) { /* things and stuff */ });