gatsby - Gatsby graphql 或两个不同字段上的条件
问题描述
是否可以在 gatsby 的两个不同字段上添加 OR 运算符?
我正在尝试执行这样的查询:
{
allFile(filter: {
OR: [
{absolutePath: {
eq: "/Users/jesusyepes/Documents/webs/lego-gatsby/src/images/site-icon.jpg"
}},
{atime: {
eq: "/Users/jesusyepes/Documents/webs/lego-gatsby/src/images/site-icon2.jpg"
}},
]
}) {
nodes {
absolutePath
id
}
}
}
这会引发以下错误:字段 \"OR\" 不是由 FileFilterInput 类型定义的。
查看他们的文档,他们说“Gatsby 依靠 Sift 启用类似 MongoDB 的查询语法来进行对象过滤。”
在我看到的Sift文档中,支持 OR :
[
{ name: "Craig", state: "MN" },
{ name: "Tim", state: "MN" },
{ name: "Joe", state: "CA" }
].filter(sift({ $or: [{ name: "Craig" }, { state: "MN" }] }));
解决方案
不幸OR
的是,在此答案时不支持(这里是所有受支持的运营商的列表)
一种解决方法是使用具有 2 个别名的查询:
query {
fileOne: allFile(filter: { ... }) { ... }
fileTwo: allFile(filter: { ... }) { ... }
}
...然后在 JS 中手动合并它们。
推荐阅读
- sql - 有没有办法用 t-sql 创建列的“枢轴组”?
- r - 如何从使用 lapply 函数获得的几个数据帧中只获取几列?
- flutter - 将 Future 转换为 Stream:Future.asStream() 与 Stream.fromFeature(...)
- python - 使用 Bloomberg API / pybbg 将股票的当前价格拉入现有的 pandas 数据框(python)
- office-js - Excel Office.js 加载项不再在 Windows 10 上正确加载
- r - 如何将缺失的日期添加到具有 NA 的列到其他列?
- angular - Angular Reactive Form 以编程方式禁用 Select 选项
- css - @media 不断收到解析错误。错误是根据第 136 和 196 行的验证器,
- macos - 如何判断 URL 是否指向沙盒应用程序中的特殊系统文件夹,例如 Documents 或 Desktop?
- rest - 什么是其他 API 方法 - COPY、HEAD、OPTIONS、LINK、UNLINK、PURGE、LOCK、UNLOCK、PROPFIND、VIEW