Node.js DynamoDB查询出错
我试图从DynamoDB查询字符串集项 错误: 代码: 我希望我的系统允许多个用户拥有相同的用户名——听起来很傻,这是有原因的 提前谢谢你 获取项目Node.js DynamoDB查询出错,node.js,amazon-web-services,amazon-dynamodb,database,nosql,Node.js,Amazon Web Services,Amazon Dynamodb,Database,Nosql,我试图从DynamoDB查询字符串集项 错误: 代码: 我希望我的系统允许多个用户拥有相同的用户名——听起来很傻,这是有原因的 提前谢谢你 获取项目 需要:表名、键(至少是散列) 可选:属性获取、一致读取、表达式属性名称等 如果将ddb.query更改为ddb.getItem,则该代码应该可以正常工作 因此,您的getItem产品看起来像: var table = 'users' var params = { TableName : table, Key : {
- 需要:表名、键(至少是散列)
- 可选:属性获取、一致读取、表达式属性名称等
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)
}
})
不过,您可能需要查询,这样您就可以返回多个项目
查询
- 需要:表名,(KeyConditionExpression&&ExpressionAttributeValue)| | KeyConditions
- 可选:返回ConsumedCapacity、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)
}
})
此外,请注意保留密钥,以确保您的所有姓名都符合要求
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)
}
})
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)
}
})