【问题标题】:Sequelize id (pk) column invalid valueSequelize id (pk) 列无效值
【发布时间】:2022-01-25 23:04:07
【问题描述】:

我这里有一个 where 条件,我需要找到不等于工作人员表的 ID 字段(主键)的东西,

但是由于某种原因,当程序返回承诺时,它告诉我“无效值 { id: 1 }”

id是db中列的名称,并且有一个与该值关联的条目。

cmets 是从 sequalize 3 移植到 6 的旧代码。

exports.getAllStaffMembers = async (request, reply) => {
  const attributes = ['id', 'accessLevel', 'emailAddress', 'firstName', 'lastName', 'phoneNumber', 'profilePictureHash'];
  let where = {
    [Op.ne]: [{ id: request.auth.credentials.id }]
  }
  // `"staffMember"."id" <> ${request.auth.credentials.id}`;

  if (request.query.rank) {
    where[Op.and] =
    {
      accessLevel: request.query.rank
    }

    // where = `${where} AND (1
    //   "staffMember"."accessLevel" = '${request.query.rank}'
    // )`;
  }

  const staffMembers = await model.staffMember.findAndCountAll(_.assign({},
    requestHelper.computePaginationObject(request.query.limit, request.query.page), {
    attributes,
    where: [where],
    order
  }));

我做错了什么/如何使用 primarykey id 列中的值?

【问题讨论】:

    标签: sequelize.js hapijs


    【解决方案1】:

    您应该在上层标明列名,在下层标明运算符。像这样:

    let where = {
        id: { [Op.ne]: request.auth.credentials.id }
      }
    

    【讨论】:

    • 是的,这成功了。我不知道我可以这样构造它。谢谢!
    猜你喜欢
    • 2020-12-05
    • 2018-05-02
    • 2021-07-27
    • 1970-01-01
    • 2018-06-13
    • 2018-12-04
    • 2020-08-21
    • 1970-01-01
    • 2016-01-12
    相关资源
    最近更新 更多