Я разрабатываю простое безсерверное приложение в AWS: API Gateway-> Lambda (node.js) -> DynamoDB.
Я хочу, чтобы количество клиентов в одной таблице и элементы отвечали, например,
Client_id, нет, предмет, цена
0001, 1, коробка, 10
0001, 2, стол, 100
0002, 1, кресло, 20
0003, 1, лампа, 15
Я выбираю Primary Key = Client_id и Sort Key = no, и в настоящее время я могу получить один элемент с помощью функции «dynamicodb.get», но у меня есть проблемыс получением всех предметов для одного клиента.Я пытался использовать "dynomodb.batchget", но мне нужно знать, сколько элементов в таблице, и, возможно, сделать несколько циклов.Может быть, есть другой способ получить все предметы от одного клиента?
const AWS = require('aws-sdk');
const dynamoDb = new AWS.DynamoDB.DocumentClient();
module.exports.get2 = (event, context, callback) => {
var params = {
"RequestItems": {
"items": {
"Keys": [{
id: Number(event.pathParameters.id),
no: 1
},
{
id: Number(event.pathParameters.id),
no: 2
}
]
}
},
"ReturnConsumedCapacity": "TOTAL"
};
dynamoDb.batchGet(params, function(err, data) {
if (err) {
console.error(err);
callback(null, {
statusCode: err.statusCode || 501,
headers: { 'Content-Type': 'text/plain' },
body: 'Couldn\'t fetch the item.',
});
return;
}
const response = {
statusCode: 200,
body: JSON.stringify(data),
};
callback(null, response);
});
};```