You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GraphQL查询中添加ID过滤条件并保留分页参数

解决方案

你使用的是Strapi v3版本的GraphQL接口,过滤参数where和分页参数limit、start属于同级参数,直接加在newsPostsConnection的入参位置即可实现按ID过滤,原有分页功能不受影响。

模板字符串拼接写法(快速适配原有代码)

// 将targetId替换为实际需要过滤的ID值
const targetId = 1
const data = await axios.post("http://localhost:1337/graphql", {
        query: `query {
        newsPostsConnection(limit: ${limit}, start: ${start}, where: { id: ${targetId} }) {
          values {
            id
            title
            body
            writtenBy
            imageUrl
            created_at
          }
          aggregate {
            totalCount
          }
        }
      }`
})

更安全的变量传参写法(推荐)

避免模板字符串拼接带来的GraphQL注入风险,推荐通过官方标准的variables参数传递所有动态值:

const data = await axios.post("http://localhost:1337/graphql", {
  query: `query getNewsPosts($limit: Int, $start: Int, $filterId: ID!) {
    newsPostsConnection(limit: $limit, start: $start, where: { id: $filterId }) {
      values {
        id
        title
        body
        writtenBy
        imageUrl
        created_at
      }
      aggregate {
        totalCount
      }
    }
  }`,
  variables: {
    limit: limit,
    start: start,
    filterId: 1 // 替换为实际需要过滤的ID值
  }
})

常用过滤扩展

  • 匹配多个ID:将过滤条件改为where: { id_in: [id1, id2, id3] }
  • 排除指定ID:将过滤条件改为where: { id_ne: 要排除的ID值 }

内容的提问来源于stack exchange,提问作者suhas bhairav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:24:02