You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Directus Flow读取数据操作:如何在过滤器中提取$now的月份

问题:筛选当月过生日的顾问

我有一个包含consultant的集合,其中有birthdate字段,想要创建Flow读取所有当月过生日的顾问。

尝试了以下配置但无法生效:

{
  "collection": "Consultant",
  "query": {
    "filter": {
      "month(birthdate)": {
        "_eq": "month($now)"
      }
    }
  }
}

但硬编码月份时可以正常运行:

{
  "collection": "Consultant",
  "query": {
    "filter": {
      "month(birthdate)": {
        "_eq": "7"
      }
    }
  }
}

需要解决的问题:如何在过滤器中从$now提取当前月份?


解决方案

问题出在你直接在过滤器的键和值中使用函数调用,这种写法不被支持。你需要使用表达式操作符来实现字段函数和当前时间函数的比较,以MongoDB Flow为例,正确的配置应该使用$expr来包裹比较逻辑:

{
  "collection": "Consultant",
  "query": {
    "filter": {
      "$expr": {
        "$eq": [
          {"$month": "$birthdate"},
          {"$month": "$$NOW"}
        ]
      }
    }
  }
}

说明

  • $expr允许你在查询过滤器中使用聚合表达式,这样就能对字段和系统变量进行函数运算后再比较
  • {"$month": "$birthdate"}提取birthdate字段的月份
  • {"$month": "$$NOW"}提取当前系统时间的月份(注意不同工具的系统时间变量名可能有差异,需根据你使用的Flow工具调整)

如果你的Flow工具不支持$expr,可以采用前置步骤的方式:

  1. 添加一个步骤,用工具内置的日期函数提取$now对应的月份
  2. 将提取出的月份存储为变量(比如currentMonth)
  3. 在过滤器中直接引用这个变量:
{
  "collection": "Consultant",
  "query": {
    "filter": {
      "month(birthdate)": {
        "_eq": "{{currentMonth}}"
      }
    }
  }
}

内容的提问来源于stack exchange,提问作者Peter Stampfli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:32:35