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

使用JavaScript查询DynamoDB单行报错,疑表定义有误求助

解决DynamoDB "The provided key element does not match the schema" 错误

嘿,这个错误我太熟了!百分之百是请求里的主键类型和你DynamoDB表定义的主键类型不匹配导致的。

先看你的代码:你传递的workOrder是数字类型,但如果你的表把workOrder这个主键定义成了字符串类型(S),DynamoDB就会直接抛出这个不匹配的错误——它对类型的要求非常严格,数字和数字字符串都不能混用。

给你几个具体的排查和解决步骤:

  • 先确认表的主键类型:登录DynamoDB控制台,找到你的目标表,查看主键workOrder的类型是字符串(S)还是数字(N)。
  • 根据表结构修正代码:
    • 如果表的workOrder是字符串类型:把代码里的数字转成字符串,比如用String(data.workOrder)包裹,确保传递的是字符串值
    • 如果表的workOrder是数字类型:要确保data.workOrder是真正的数字类型,而不是像"123"这样的字符串数字

另外,我注意到你的代码最后少了一个闭合括号),这也可能导致后续的执行问题,顺便帮你补上了。这里是修正后的示例(假设表主键是字符串类型):

function parseGET( data, callback ) { 
  const params = { 
    TableName: data.TableName, 
    Key: { "workOrder": String(data.workOrder) } // 转成字符串匹配表结构
  }; 
  dynamodb.get( params, ( error, data ) => { 
    if( error ) console.log( 'table ERROR:', error ); 
    // 这里放你的后续逻辑
  }); // 补上缺失的闭合括号
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:12:21