能否将条件判断整合到Sequelize的where对象声明语句中?
解决方案:将条件判断整合到Sequelize where初始声明里
你可以利用JavaScript的对象展开运算符结合短路逻辑判断,把原本的if条件逻辑直接整合到where对象的初始声明中,代码如下:
const where = { office_no: 1999, status: "APPLY", [Op.and]: [ Sequelize.literal( `${property_master_no} member of (request_json->'$.property[*].property_master_no')`, ), ], // 当document_no存在时,动态添加no字段的排除条件 ...(document_no ? { no: { [Op.not]: document_no } } : {}), };
逻辑说明
- 使用
...对象展开运算符,将后面的条件对象合并到主where对象中 - 当
document_no为真值(非空、非undefined等)时,返回包含no排除条件的对象;否则返回空对象,不会对原where结构产生影响 - 这个写法和你原本的if判断逻辑完全等价,但实现了用const一次性声明初始化
where对象的需求
内容的提问来源于stack exchange,提问作者BdPk
相关产品推荐
相关产品推荐

