常见查询
介绍
如数据获取介绍中所述,TinaCMS 提供了一个用于查询内容的客户端。
注意,对于高级用例,您还可以手动查询底层的 GraphQL API。
查询单个文档
在上面的例子中,post 是正在查询的集合的名称。可以用您架构中定义的集合名称之一替换它。
查询文档列表
<collection-name>Connection 可用于查询文档列表(在上面的例子中,我们的集合名称是 post)。
过滤
可以将过滤器作为选项添加到 <collection-name>Collection 查询中。
以下操作符类型可用于查询
键 | 行为 | 类型 |
|---|---|---|
eq | 等于 | string, number, boolean |
in | 其中之一 | string[], number[], boolean[] |
gt | 大于 | string, number |
gte | 大于或等于 | string, number |
lt | 小于 | string, number |
lte | 小于或等于 | string, number |
startsWith | 以...开始 | string |
after | 之后 | datetime |
before | 之前 | datetime |
只有gt、gte、lt、lte、after、before可以用于三元条件。
根据文件名(_sys)过滤
目前,按文件名过滤文档的唯一方法是通过代码过滤现有的文档集合。
例如,要过滤一个帖子数组以仅包含名为 file-name-i-want 的文件,可以使用以下代码:
注意:使用自动生成的<collection-name>Connection时,查询将仅应用于文档的字段,而不是_sys属性。如上所示的代码过滤是一种合适的替代方案。
排序
可以将排序作为选项添加到 <collection-name>Collection 查询中。
多字段排序
在这里,我们将使用 postConnection 查询我们的帖子集合,并首先按类别排序,然后按日期排序,使用名为 category-date 的多字段索引:
分页
TinaCMS 支持基于游标的分页:
在客户端使用内置查询的一个限制是您一次只能查询一个根集合。如果您有一个页面上有多个表单,您可能需要使用自定义查询。