Node.js 自定义查询的Sequelize查询构造不一致

Node.js 自定义查询的Sequelize查询构造不一致,node.js,sequelize.js,Node.js,Sequelize.js,我目前正试图在我的节点应用程序中构建一个Sequelize查询,如下所示 import sequelize from 'sequelize'; function getReadMsg(){ const where = [sequelize.where( sequelize.literal('"Message"."status" = \'read\'') )]; const attributes = { exclude: ['upd

我目前正试图在我的节点应用程序中构建一个Sequelize查询,如下所示

import sequelize from 'sequelize';

function getReadMsg(){
  const where = [sequelize.where(
    sequelize.literal('"Message"."status" = \'read\'') 
  )];

  const attributes = { exclude: ['updated_at'] };

  const order = [['created_at', 'ASC']];

  return model.findAll({ where, attributes, order }); // model is a sequelize model object
}
然而,Sequelize构造的原始查询正在比较 其中将块设置为null,因此无法达到查询目的

下面是原始的Sequelize构造查询

SELECT "id", "title", "body", "to", "from", "status", "created_at" FROM "Messages" AS "Message" WHERE ("Message"."status" = 'read' IS NULL) ORDER BY "Message"."created_at" ASC;
而不是

SELECT "id", "title", "body", "to", "from", "status", "created_at" FROM "Messages" AS "Message" WHERE ("Message"."status" = 'read') ORDER BY "Message"."created_at" ASC;
挤压版本:5.21.4

挤压cli版本:5.5.1


节点版本:12.16.1

sequelize。其中
使用3个参数,如果省略最后2个参数,则它们将分别为“=”和“null”。 你应该这样做:

sequelize.where(sequelize.literal('"Message"."status"'), '=', 'read')

请使用类似的格式设置SQL查询的格式。@Anatoly,我会研究一下,谢谢