Sequelize.js 续集查询由$and连接的2个函数

Sequelize.js 续集查询由$and连接的2个函数,sequelize.js,Sequelize.js,我试图将两个条件连接起来,但到目前为止,我还没有弄清楚这些条件: models.trees.findOne({ where: { state: { [sequelize.Op.eq]: "Publish", }, $and: [sequelize.where(sequelize.fn("MONTH", sequelize.fn(&q

我试图将两个条件连接起来,但到目前为止,我还没有弄清楚这些条件:

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"] 
        ]
    });
问题在于$中的两个条件,只有后者被应用,我试图用{}来封装不同的条件,但它抛出了一个syntaxis错误。 你知道如何将两个函数应用于过滤器吗


谢谢

您可以使用
sequelize.和
组合多个
sequelize。其中
具有以下功能:

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)
  )
)
where:sequelize.and(
sequelize.where(sequelize.fn('date\u part','year',sequelize.col('start\u date)),'=',year),
sequelize.where(sequelize.col('end_date'),'is',null)
)
)

您可以尝试使用sequelize将它们组合起来。您能给我举个例子吗,因为我以前试过