gol*_*cks 6 amazon-dynamodb aws-sdk
我有一个用户ID的数组,我想从dynamoDB表中获取具有该id的所有用户
没有在文档中找到它
有任何想法吗?
gol*_*cks 10
我最终使用了 batchGet,这是AWS.DynamoDB.DocumentClient 的一个操作
不支持具有相同键的多个项目,因此我必须像这样一遍又一遍地定义键:
var dynamoConfig = {
sessionToken: process.env.AWS_SESSION_TOKEN,
region: process.env.AWS_REGION
};
var dynamodbDocClient = new AWS.DynamoDB.DocumentClient(dynamoConfig);
var params = {
RequestItems: {
tableName: {
Keys: [
{
id: 'user1Id'
},
{
id: 'user2Id'
},
{
id: 'user3Id'
}
]
}
}
}
dynamodbDocClient.batchGet(paramsForQueringFormerEvaluators, function(err, data) {
if (err) {
console.log('createEvaluation: get former evaluators: err: ', err);
return;
}
var users = data.Responses.tableName;
console.log('createEvaluation: get former evaluators: ', users);
});
Run Code Online (Sandbox Code Playgroud)
您可能可以使用Scan方法。
我目前正在使用 pythonboto3包。参考scanboto3。所以代码会是这样的:
table = boto3.resourse('dynamodb').Table('users-table-name')
response = table.scan(
ScanFilter={'user-id': {
'AttributeValueList': user_ids,
'ComparisonOperator': 'IN' }
}
)
Run Code Online (Sandbox Code Playgroud)
但我不确定使用BatchGetItemor哪个更好Scan。大概取决于两个因素:
table.item_count)count(user_ids))如果count(user_ids) << table.item_count那么你肯定需要使用BatchGetItem.
如果count(user_ids) / table.item_count -> 1那时你需要使用Scan.
| 归档时间: |
|
| 查看次数: |
8219 次 |
| 最近记录: |