【问题标题】:How can i perform not contains query in sequelize我如何在 sequelize 中执行不包含查询
【发布时间】:2019-01-12 06:01:47
【问题描述】:

我正在使用带有 postgres 的 sequelize, 有没有办法用 sequelize 执行“不包含”语句?

类似:

[Op.not]: {
    [Op.contains]: ['value1','value2']
} 

产生:

SELECT * FROM Table WHERE NOT ArrayColumn @>ARRAY['value1','value2']::VARCHAR(255)[]

【问题讨论】:

    标签: postgresql sequelize.js


    【解决方案1】:

    有同样的问题不得不去粗暴的 SQL

    where['<COL_NAME>'][Op.and] = [Sequelize.literal(`'${JS_VARIABLE_ARRAY}' != all (<COL_NAME>)`)];
    

    我已经构建了这个辅助函数来构造 my where 查询

    const buildWhereQuery = (query, columns) => {
      const parsedObject = {};
      Object.keys(query).forEach((attr) => {
        if (columns.indexOf(attr) !== -1 &&  (query[attr] !== null || query[attr] !== undefined)) {
          parsedObject[attr] = query[attr];
        }
      });
      return parsedObject;
    };
    
    
    const where = buildWhereQuery(query, columnsToQueryAgainst)
    

    希望对您有所帮助。 使用: 节点:v10.14.2 续集@4.38.0 sequelize-cli@4.0.0

    【讨论】:

      【解决方案2】:

      你可以用作

      where: {
          $not: { $contains: ['value1','value2'] },
      }
      

      【讨论】:

      猜你喜欢
      • 2017-03-23
      • 2022-12-04
      • 1970-01-01
      • 1970-01-01
      • 2017-03-17
      • 2019-03-28
      • 2017-01-21
      • 2018-03-09
      相关资源
      最近更新 更多