DynamoDB 查询错误
Error with DynamoDB Query
我正在尝试从 DynamoDB
查询字符串集项
错误:
{
"errorMessage":"{
"message": "Unexpected key 'Key' found in params",
"code": "UnexpectedParameter",
"time": "2016-01-06T08:24:02.183Z"
}"
}
代码:
var table = 'users'
var params = {
TableName : table,
Key : {
'userType': { 'S': event.type },
'username': { 'S': event.username }
}
}
ddb.query (params, function(err, data) {
if (err) {
// Oh well
} else {
context.succeed (data.Item)
}
})
我希望我的系统允许多个用户使用相同的用户名 - 听起来很傻,但这是有充分理由的。
提前致谢
获取项目
- 要求 : TableName, Key (至少hash)
- 可选:AttributesToGet、ConsistentRead、ExpressionAttributeNames 等
如果您将 ddb.query
更改为 ddb.getItem
- 该代码应该可以完美运行。
所以您的 getItem 产品看起来像:
var table = 'users'
var params = {
TableName : table,
Key : {
'userType': { S: event.type },
'username': { S: event.username }
}
}
ddb.getItem (params, function(err, data) {
if (err) {
// Oh well
} else {
context.succeed (data.Item)
}
})
虽然您可能需要查询,这样您就可以 return 多个项目
查询
- 需要:表名,(KeyConditionExpression && ExpressionAttributeValues) ||关键条件
- 可选:ReturnConsumedCapacity、QueryFilter、ProjectionExpression、Limit 等
这将是:
var table = 'usatUsers'
var params = {
TableName : table,
KeyConditions: {
"userType": {
"AttributeValueList": [{
S: event.type
}],
"ComparisonOperator" : "EQ"
}
}
}
ddb.query (params, function(err, data) {
if (err) {
// Oh well
} else {
context.succeed (data)
}
})
此外,请注意保留键 CHECK THIS LIST 以确保您的所有名称都符合要求
我正在尝试从 DynamoDB
查询字符串集项错误:
{
"errorMessage":"{
"message": "Unexpected key 'Key' found in params",
"code": "UnexpectedParameter",
"time": "2016-01-06T08:24:02.183Z"
}"
}
代码:
var table = 'users'
var params = {
TableName : table,
Key : {
'userType': { 'S': event.type },
'username': { 'S': event.username }
}
}
ddb.query (params, function(err, data) {
if (err) {
// Oh well
} else {
context.succeed (data.Item)
}
})
我希望我的系统允许多个用户使用相同的用户名 - 听起来很傻,但这是有充分理由的。
提前致谢
获取项目
- 要求 : TableName, Key (至少hash)
- 可选:AttributesToGet、ConsistentRead、ExpressionAttributeNames 等
如果您将 ddb.query
更改为 ddb.getItem
- 该代码应该可以完美运行。
所以您的 getItem 产品看起来像:
var table = 'users'
var params = {
TableName : table,
Key : {
'userType': { S: event.type },
'username': { S: event.username }
}
}
ddb.getItem (params, function(err, data) {
if (err) {
// Oh well
} else {
context.succeed (data.Item)
}
})
虽然您可能需要查询,这样您就可以 return 多个项目
查询
- 需要:表名,(KeyConditionExpression && ExpressionAttributeValues) ||关键条件
- 可选:ReturnConsumedCapacity、QueryFilter、ProjectionExpression、Limit 等
这将是:
var table = 'usatUsers'
var params = {
TableName : table,
KeyConditions: {
"userType": {
"AttributeValueList": [{
S: event.type
}],
"ComparisonOperator" : "EQ"
}
}
}
ddb.query (params, function(err, data) {
if (err) {
// Oh well
} else {
context.succeed (data)
}
})
此外,请注意保留键 CHECK THIS LIST 以确保您的所有名称都符合要求