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

DynamoDB begins_with查询无法获取数据问题求助

问题排查与解决方案

核心错误:排序键属性名误用

你在KeyConditionExpression里把排序键值的格式当成了属性名。你的排序键属性名应该是表定义里的实际字段名(比如sortKey、sk这类),而不是teamId#taskId#checkpointId——这个是排序键值的格式。

比如,如果你的表中排序键的属性名为sortKey,正确的KeyConditionExpression写法如下:

"userId = :userId AND begins_with(sortKey, :teamTaskId)"

其他排查点

  • 格式一致性检查:确认数据库中排序键的值严格遵循teamId#taskId#checkpointId格式,没有空格、多余符号或分隔符错误(比如用-代替了#)。
  • 大小写敏感验证:DynamoDB查询区分大小写,检查请求参数userId/teamId/taskId的大小写和数据库存储的完全一致。
  • 前缀完整性确认:确保ExpressionAttributeValues中的:teamTaskId是${teamId}#${taskId}#,末尾的#不能省略——只有这样才能匹配所有以teamId#taskId#开头的checkpoint记录。
  • 表名与权限排查:验证Table变量对应的表名是否正确,同时确认后端服务的IAM角色拥有该表的query权限。
  • 错误日志输出:在getUserById的catch块中添加console.log(error)打印错误详情,若服务端报错,能直接定位具体原因(比如表不存在、权限不足)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:52:36