filter - Hasura:如何按用户指定的范围过滤,其中数据包含范围
问题描述
在数据库中,有 41.0、41.5-42、42-43 等尺码的鞋子。我将它们保存为:
41.0 -> shoes_min=41.0; shoes_max=41.0
41.5-42 -> shoes_min=41.5; shoes_max=42.0
42-43 -> shoes_min=42.0; shoes_max=43.0
我建议的过滤器以用户可能的方式显示上述所有示例(在前端只有 2 个输入值 (41, 42),表示用户感兴趣的范围。它应该匹配所有上述 3示例,但在我的情况下,它与条目不匹配shoes_min=42; shoes_max=43
query MyQuery {
models(
where: {
shoes_min: {_gte: "41"}
_and: {
shoes_min: {_lte: "42"}
},
_or: {
shoes_max: {_gte: "41"}
_and: {
shoes_max: {_lte: "42"}
},
},
},
order_by: {shoes_max: asc}
) {
shoes_min
shoes_max
name
url
}
}
解决方案
这是正确的请求正文:
query MyQuery {
models(
where: {
_or: [
{_and: [{shoes_min: {_gte: 41}}, {shoes_min: {_lte: 42}}]},
{_and: [{shoes_max: {_gte: 41}}, {shoes_max: {_lte: 42}}]}
]
},
order_by: [{shoes_min: asc}, {shoes_max: asc}]
) {
shoes_min
shoes_max
name
}
}
推荐阅读
- angular - 如何在标题下方添加标签导航?
- python - 如何将 Python 连接到 Microsoft Access 数据库文件?
- excel - 使用 VBA 在 XML 中设置多个命名空间
- chromecast - Is there any way to provide cookies for file-based media (mp4) in Chromecast CAF Receiver application
- python - 如何解决形状问题的 inverse_transform?
- c++ - dft(离散傅立叶变换)与 C++ 代码
- node.js - ES6:模块“猫鼬”没有默认导出
- javascript - 插入新元素时如何平滑移动?
- react-native - React Native TextInput 在字符串中时从状态中读取值。但是在数量上失败
- typescript - 如何在 TypeScript 中的文档元素值上设置 localStorage 值?