Я работаю над лямбда-функцией, которая будет хранить информацию о разных пользователях.
У меня есть атрибут, userID в качестве основного ключа раздела, а StoreObject - в качестве основного ключа сортировки.
Когда я использую PutItem, я хочу, чтобы он добавлял элемент только в том случае, если он еще не существует в атрибуте storeObject.
Это мой код
var params = {
TableName: 'TrackItDB',
Item: {
'userID' : {S: currentUser},
'storedObject' : {S: itemName},
'lenderPerson' : {S: personName},
'objectStatus' : {S: 'lent'},
'transactionDate': {S: date},
}
};
....
const checkIfItemIsStoredParams = {
Key: {
"userID" : {
S: currentUser
},
"storedObject" : {
S: itemName
}
},
TableName: "TrackItDB"
};
.....
dynamodb.getItem(checkIfItemIsStoredParams, function(err, data) {
if (!data) {
// no match, add the item
console.log('Item did not exist, storing to DB');
console.log(params);
return dynamodb.putItem(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
}
});
}
else {
console.log('Get item succeeded', data);
}
}
});
Проблема, с которой я столкнулся, заключается в том, что она всегда выводит Get Item успешно на консоль, даже если нет данных. Я пробовал оба if (data) и if (! Data), и оба возвращают элемент get успешно, даже если данные не возвращаются.