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

如何为DynamoDB创建满足指定筛选条件的GraphQL查询

实现方案

1. AppSync Schema 定义

type EventChat {
  eventId: ID!
  createdOn: AWSDateTime! # 若存储的是Unix时间戳可改为AWSTimestamp
  userId: ID!
  content: String!
  # 可按需补充其他业务字段
}

type Query {
  getEventChatsByDateRange(
    eventId: ID!
    startDate: AWSDateTime! # 和createdOn类型保持一致,时间戳就改AWSTimestamp
    endDate: AWSDateTime!
  ): [EventChat!]!
}

2. 前端Apollo Client查询语句

query GetEventChatsByDateRange($eventId: ID!, $startDate: AWSDateTime!, $endDate: AWSDateTime!) {
  getEventChatsByDateRange(eventId: $eventId, startDate: $startDate, endDate: $endDate) {
    eventId
    createdOn
    userId
    content
    # 按需取返回字段
  }
}

3. AppSync DynamoDB 请求映射模板(VTL)

{
  "version": "2018-05-29",
  "operation": "Query",
  "query": {
    "expression": "eventId = :eventId AND createdOn BETWEEN :startDate AND :endDate",
    "expressionValues": {
      ":eventId": $util.dynamodb.toDynamoDBJson($ctx.args.eventId),
      ":startDate": $util.dynamodb.toDynamoDBJson($ctx.args.startDate),
      ":endDate": $util.dynamodb.toDynamoDBJson($ctx.args.endDate)
    }
  },
  "scanIndexForward": true # 按createdOn升序返回,要降序改为false即可
}

4. 响应映射模板(默认即可)

$util.toJson($ctx.result.items)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:06:04