Sequelize comment trouver des lignes avec plusieurs clauses where et horodatage> NOW ()
-
28-10-2019 - |
Question
Comment faire cela avec Sequelize?
SELECT FROM sessions WHERE user_id = ? AND token = ? AND expires > NOW()
Voici ce que j'essaie de faire (supposons que Session
est un modèle Sequelize):
Session.find({
where: {
user_id: someNumber,
token: someString,
//expires > NOW() (how do I do this?)
}
}).on('success', function (s) { /* things and stuff */ });
Merci!
La solution
avez-vous essayé d'utiliser la notation matricielle des finders dans sequelize?
Session.find({
where: ['user_id=? and token=? and expires > NOW()', someNumber, someString]
}).on('success', function (s) { /* things and stuff */ });
Vous pouvez consulter cette page: http://sequelizejs.com/?active=find-objects#find-objets
J'espère que cela fonctionne.Sinon c'est un bug: D
Autres conseils
Veuillez noter qu'à partir de cette publication et de la version la plus récente de sequelize, les réponses ci-dessus sont obsolètes.Je publie la solution que j'ai mise en œuvre dans l'espoir de faire gagner du temps à quelqu'un.
filters["State"] = {$and: [filters["State"], {$not: this.filterSBM()}] };
Notez le $ et le tableau à l'intérieur de l'objet JSON et l'absence de?remplacement de jeton.
Ou de manière plus générale, car cela pourrait aider quelqu'un à comprendre:
{ $and: [{"Key1": "Value1"}, {"Key2": "Value2"}] }
Une autre méthode:
Session.find({
where: {
user_id: someNumber,
token: someString,
expires: {
$gt: (new Date())
}
}
}).on('success', function (s) { /* things and stuff */ });