首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >序列化查询$and连接的2个函数

序列化查询$and连接的2个函数
EN

Stack Overflow用户
提问于 2020-12-09 20:55:09
回答 1查看 20关注 0票数 0

我正在尝试连接两个条件,但到目前为止我还不能弄清楚它们的语法:

代码语言:javascript
运行
复制
models.trees.findOne({
        where: {
          state: {
            [sequelize.Op.eq]: "Publish",
          },
          $and: 
            [sequelize.where(sequelize.fn("MONTH", sequelize.fn("CURRENT_DATE")), sequelize.fn("MONTH", sequelize.col("createdAt"))),
            sequelize.where(sequelize.fn("YEAR", sequelize.fn("CURRENT_DATE")), sequelize.fn("YEAR", sequelize.col("createdAt")))],
          userId: {
            [sequelize.Op.eq]: id
          },
        },
        attributes: [
          [sequelize.fn("COUNT", sequelize.col("userId")), "count_trees"] 
        ]
    });

问题是$and中的两个条件,只应用了后者,我试图用{}括起不同的条件,但它抛出了一个语法错误。你知道如何将两个函数应用到过滤器的什么地方吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-09 22:11:31

您可以使用sequelize.and将多个sequelize.where与如下函数组合在一起:

代码语言:javascript
运行
复制
where: sequelize.and(
  sequelize.where(sequelize.fn('date_part', 'year', sequelize.col('start_date)), '<=',   year),
  sequelize.or(
   sequelize.where(sequelize.fn('date_part', 'year', sequelize.col('end_date')), '>=', year),
   sequelize.where(sequelize.col('end_date'), 'is', null)
  )
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65217188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档