Javascript 按日期变量筛选Graphql结果

Javascript 按日期变量筛选Graphql结果,javascript,database,reactjs,graphql,gatsby,Javascript,Database,Reactjs,Graphql,Gatsby,我正在使用graphql和gatsby从数据库中获取数据。以下是我的疑问: export const querymk = graphql` query HomePageQuery { allMongodbAppsOneapps ( filter : { my_time: { eq : "2019-08-21T12:35:56.863Z" }} ) { nodes { id my_time(formatString: "DD MMMM YY

我正在使用
graphql
gatsby
从数据库中获取数据。以下是我的疑问:

export const querymk = graphql`
  query HomePageQuery {
  allMongodbAppsOneapps (
      filter : { my_time: { eq : "2019-08-21T12:35:56.863Z" }}
  )  {
    nodes {
      id
      my_time(formatString: "DD MMMM YYYY")
      text {
        title
        developer
        icon
      }
    }
  }
}
`

这很好用。。但是我需要用变量
date
eq:$mydate
)替换我的过滤器:
eq:“2019-08-21T12:35:56.863Z”
)。。我不知道从哪里开始

可以通过在命名查询中提供变量来传递变量

请查看以下示例:

export const querymk = graphql`
  query HomePageQuery($dateFormat : String!) {
  allMongodbAppsOneapps (
      filter : { my_time: { eq: $dateFormat }}
  )  {
    nodes {
      id
      my_time(formatString: "DD MMMM YYYY")
      text {
        title
        developer
        icon
      }
    }
  }
}
`
要将变量传递给查询,必须在创建页面时将其作为上下文传递:

createPage({
    ...page,
    context: {
      ...page.context,
      dateFormat: `2019-08-21T12:35:56.863Z`,
    },
  })
这仅适用于编译时查询,这是gatsby的限制:

盖茨比在构建时使用GraphQL,而不是用于实时站点。这是独一无二的,这意味着您无需运行其他服务(例如,数据库和Node.js服务)即可将GraphQL用于生产网站

资料来源:


相关文档:

如何将$dateFormat传递给我的查询?我已更新了答案,能否显示使用GraphQL查询的代码@Fatimati收到此错误:
错误:看起来盖茨比配置错误。与Gatsby相关的
graphql`调用应该只在编译时进行评估,然后编译掉,。不幸的是,出现了一些错误,查询留在了编译后的代码中。`这意味着我只能在Gatsby节点配置文件中使用固定值?是的,graphql仅用于编译时,请在此处阅读更多信息:@FatimaTT