相关疑难解决方法(0)

Sequelize可选where子句参数?

这是让我烦恼的一件事!我必须为几乎相同的查询编写2个不同的函数!

假设我有一个返回的API posts与特定的typeIdcityId.为了获得ALL了关联到职位typeId 1 OR 2, OR 3 cityId 1我会解析以下我sequelize findAll查询:

$or: [{typeId: 1}, {typeId: 2}, {typeId: 3}]
cityId: 1
Run Code Online (Sandbox Code Playgroud)

但是说我希望得到所有帖子,cityId = 1 andOr typeId = 1,2,3,4,5,6,7,8,9,10,etc...我不能做以下事情:

var types = [{typeId: 1}, {typeId: 2}, {typeId: 3}]
Post.findAll({
     where: {
          if (types != []) $or: types,
          cityId: 1
      }
Run Code Online (Sandbox Code Playgroud)

所以我必须创建一个不包含$or: typeswhere子句的新查询...因为如果我解析一个空types数组,我得到一个奇怪的sql输出:

WHERE 0 = 1 AND `post`.`cityId` = '1'
Run Code Online (Sandbox Code Playgroud)

注意它是如何输出0 = 1的?不知道为什么

sequelize.js

7
推荐指数
2
解决办法
3969
查看次数

标签 统计

sequelize.js ×1