У меня есть json объект "item", как показано ниже:
{ 'UID': 'A123', 'SUBSCRIBER-ID': '123', CUSTOMER: 'CUST1' }
{ 'UID': 'B234', 'SUBSCRIBER-ID': '234', CUSTOMER: 'CUST2' }
{ 'UID': 'C456', 'SUBSCRIBER-ID': '456', CUSTOMER: 'CUST3' }
{ 'UID': 'D567', 'SUBSCRIBER-ID': '678', CUSTOMER: 'CUST4' }
UID - это первичный ключ моей таблицы DynamodB. Я использую приведенный ниже код для вставки этих данных в DynamodB.
async.each(split_arrays, function(item_data, callback) {
const params = {
RequestItems: {}
};
params.RequestItems[DYNAMODB_TABLENAME] = [];
item_data.forEach(item => {
for (key of Object.keys(item)) {
// An AttributeValue may not contain an empty string
if (item[key] === '')
delete item[key];
}
var value = Object.values(item)[0]
console.log(item)
params.RequestItems[DYNAMODB_TABLENAME].push({
PutRequest: {
Item: {
UID:value,
...item
}
}
});
});
docClient.batchWrite(params, function(err, res, cap) {
console.log('done going next');
if (err == null) {
console.log('Success chunk #' + chunk_no);
data_imported = true;
} else {
console.log(err);
console.log('Fail chunk #' + chunk_no);
data_imported = false;
}
chunk_no++;
callback();
});
Проблема, с которой я сталкиваюсь, заключается в том, что данные вставляются, но в конце добавляется «UID» в качестве дополнительного столбца в таблице, как то так:
UID CUSTOMER SUBSCRIBER-ID UID
A123 CUST1 123 A123
B234 CUST2 234 B234
C456 CUST3 456 C456
D567 CUST4 678 D567