DynamoDB:提供的键元素与架构不匹配
DynamoDB: The provided key element does not match the schema
我在项目中使用 nodejs 和 dynamoDB。每当我尝试获取设备 ID 时都会遇到问题,但总是出现错误:cmd 中的“ValidationException:提供的关键元素与模式不匹配”。
DynamoDB:
我的代码:
dynamo.js
app.js
ValidationException:提供的关键元素与模式不匹配
错误可能发生在 GetItem
操作 (dynamoClient.get()) 中 Key
设置为 {'id': id}
。你的BUG有两种可能(因为你的问题信息量太少,所以无法多说):
id
不是您项目的密钥,或者不是 整个 密钥。如果您的项键也有排序键,而不仅仅是分区键,您也必须指定它。如果要检索具有所有排序键的相同分区键的所有项目,则必须使用 Query
操作,而不是 GetItem
.
- 如果
id
确实是唯一的键列,那么您可能给它提供了错误的类型。从您包含的打印输出看来 id
应该是一个数字。如果你给它传递一个字符串(我不知道“id”变量包含什么......)你会得到你提到的错误。
我在项目中使用 nodejs 和 dynamoDB。每当我尝试获取设备 ID 时都会遇到问题,但总是出现错误:cmd 中的“ValidationException:提供的关键元素与模式不匹配”。
DynamoDB:
我的代码: dynamo.js
app.js
ValidationException:提供的关键元素与模式不匹配
错误可能发生在 GetItem
操作 (dynamoClient.get()) 中 Key
设置为 {'id': id}
。你的BUG有两种可能(因为你的问题信息量太少,所以无法多说):
id
不是您项目的密钥,或者不是 整个 密钥。如果您的项键也有排序键,而不仅仅是分区键,您也必须指定它。如果要检索具有所有排序键的相同分区键的所有项目,则必须使用Query
操作,而不是GetItem
.- 如果
id
确实是唯一的键列,那么您可能给它提供了错误的类型。从您包含的打印输出看来id
应该是一个数字。如果你给它传递一个字符串(我不知道“id”变量包含什么......)你会得到你提到的错误。