I am using nodeJS sdk to put the item to dynamoDB, The item is:
{
"eventId": date + '-' + eventName + '-' + eventPurpose,
"eventName": eventName,
"eventPurpose": eventPurpose,
"eventDates": eventDates,
"attendees": attendees
}
The present code for the putting the item in dynamoDB:
const params = {
TableName: "event",
Item: {
"eventId": date + '-' + eventName + '-' + eventPurpose,
"eventName": eventName,
"eventPurpose": eventPurpose,
"eventDates": eventDates,
"attendees": attendees
},
ReturnValues: "ALL_OLD"
};
dynamo.put(params, (err, data) => {
console.log("coming here");
if (err) {
console.log("error : " + JSON.stringify(err));
}
console.log("data" + JSON.stringify(data));
cb(null, data);
});
The insertion happens correctly and the return value is an empty object.
I would like to return the inserted item. I found this doc. But this returns only in case of updating the old value. I could not find any other useful info other than this.
Is there any work around or we simply need to query using get method with the primary key?
The link you posted is, sadly, the only real answer at this time (API Version 2012-08-10). PutItem
may return items just before they were updated or none at all.
The
ReturnValues
parameter is used by several DynamoDB operations; however,PutItem
does not recognize any values other thanNONE
orALL_OLD
.
In short, the only reliable way to retrieve your inserted object is to GetItem
, just as you surmised.