2015-08-16 76 views
1

我试图使用Sequelize来生成(半)复杂的条件。续集OR与空

我想生成的SQL是:

SELECT * FROM Tasks 
WHERE completedDate IS NULL OR completedDate < CURRENT_TIMESTAMP; 

所以我使用Sequelize命令:

Task.findAll({ 
    where: { 
    completedDate: null 
    }, 
    $or: [ 
    { 
     completedDate: { 
     $lt: new Date() 
     } 
    } 
    ] 
}); 

但是它返回0行。难道我做错了什么?

回答

1

我认为Sequelize $or要求两个条件都在同一个块中。尝试这样的:

Task.findAll({ 
    completedDate: { 
     $or: { 
      $eq: null, 
      $lt: new Date() 
     } 
    } 
}); 
+0

这样做的伎俩,谢谢! – Roflmuffin