我正在使用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
}
}
}
}
`
这工作正常..但是我需要替换我的过滤器:eq : "2019-08-21T12:35:56.863Z"
变量date
(eq : $mydate
(..我不知道从哪里开始
可以通过在命名查询中提供变量来传递变量。
查看以下示例:
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 的限制:
Gatsby 在构建时使用 GraphQL,而不是用于实时站点。这是独一无二的,这意味着您无需运行其他服务(例如数据库和 Node.js 服务(即可将 GraphQL 用于生产网站。
来源: https://www.gatsbyjs.org/docs/querying-with-graphql/#how-do-graphql-and-gatsby-work-together
相关文档: https://www.gatsbyjs.org/docs/creating-and-modifying-pages/#creating-pages-in-gatsby-nodejs