PutItem lets you add a new item or replace an existing one in a DynamoDB table. It helps you save data quickly and easily.
PutItem (creating items) in DynamoDB
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
DynamoDB
PutItem {
TableName: "TableName",
Item: {
"PrimaryKey": {"S": "value"},
"Attribute1": {"S": "value"},
"Attribute2": {"N": "123"}
}
}The TableName is the name of your DynamoDB table.
The Item is a map of attribute names to their values and types.
Examples
DynamoDB
PutItem {
TableName: "Users",
Item: {
"UserID": {"S": "user123"},
"Name": {"S": "Alice"},
"Age": {"N": "30"}
}
}DynamoDB
PutItem {
TableName: "Orders",
Item: {
"OrderID": {"S": "order789"},
"Amount": {"N": "250"},
"Status": {"S": "Pending"}
}
}Sample Program
This adds a new book record with ISBN, title, author, and year to the Books table.
DynamoDB
PutItem {
TableName: "Books",
Item: {
"ISBN": {"S": "978-1234567890"},
"Title": {"S": "Learn DynamoDB"},
"Author": {"S": "Jane Doe"},
"Year": {"N": "2024"}
}
}Important Notes
If an item with the same primary key exists, PutItem replaces it completely.
You must provide all required attributes for the table's primary key.
PutItem is simple but does not check if the item already exists unless you add conditions.
Summary
PutItem adds or replaces a single item in a DynamoDB table.
You specify the table name and the item attributes with their types.
It is useful for saving new data or updating existing records quickly.
Practice
1. What does the
PutItem operation do in DynamoDB?easy
Solution
Step 1: Understand the purpose of PutItem
PutItem is used to add a new item or replace an existing item in a DynamoDB table.Step 2: Compare with other operations
Delete removes items, Get reads items, and Update modifies specific attributes, so they differ from PutItem.Final Answer:
Adds a new item or replaces an existing item in a table -> Option DQuick Check:
PutItem = Add or replace item [OK]
Hint: PutItem adds or replaces whole items, not partial updates [OK]
Common Mistakes:
- Confusing PutItem with UpdateItem
- Thinking PutItem only adds without replacing
- Mixing PutItem with Delete or Get operations
2. Which of the following is the correct syntax snippet to add an item with
PutItem in DynamoDB using AWS SDK?easy
Solution
Step 1: Check the correct method and parameters
The AWS SDK method isputItemwith parametersTableNameandItemwhere each attribute has a type likeSfor string.Step 2: Validate the attribute format
dynamodb.putItem({ TableName: 'Users', Item: { 'UserId': { S: '123' }, 'Name': { S: 'Alice' } } }) uses the correct method and attribute typing. Other options use wrong method names or omit types.Final Answer:
dynamodb.putItem({ TableName: 'Users', Item: { 'UserId': { S: '123' }, 'Name': { S: 'Alice' } } }) -> Option AQuick Check:
Correct method and typed attributes = dynamodb.putItem({ TableName: 'Users', Item: { 'UserId': { S: '123' }, 'Name': { S: 'Alice' } } }) [OK]
Hint: Use putItem with typed attributes like { S: 'value' } [OK]
Common Mistakes:
- Using wrong method names like put or insertItem
- Not specifying attribute types (S, N, etc.)
- Using wrong parameter names like Table instead of TableName
3. Given the following
PutItem request, what will be the result in the DynamoDB table?{
TableName: 'Products',
Item: {
'ProductId': { S: 'p100' },
'Name': { S: 'Pen' },
'Price': { N: '5' }
}
}medium
Solution
Step 1: Understand attribute types in PutItem
In DynamoDB, number attributes are passed as strings inside theNtype, so'5'is valid for number.Step 2: Result of PutItem operation
The item with all specified attributes is added or replaces existing item with same ProductId.Final Answer:
A new item with ProductId 'p100', Name 'Pen', and Price 5 is added or replaced -> Option CQuick Check:
PutItem stores typed attributes correctly = A new item with ProductId 'p100', Name 'Pen', and Price 5 is added or replaced [OK]
Hint: Number values are strings inside N type in PutItem [OK]
Common Mistakes:
- Thinking number values must be numeric type, not string
- Assuming partial attributes are saved
- Confusing attribute types and values
4. You try to run this
What is the likely cause of the error?
PutItem request but get an error:{
TableName: 'Orders',
Item: {
'OrderId': 'o123',
'Amount': { N: '100' }
}
}What is the likely cause of the error?
medium
Solution
Step 1: Check attribute format in Item
Each attribute must specify its type, e.g.,{ S: 'value' }for strings. Here, 'OrderId' lacks the type wrapper.Step 2: Validate other parts
TableName is valid, number values are strings insideN, and Item is an object, so those are correct.Final Answer:
The attribute 'OrderId' is missing its type wrapper like { S: 'o123' } -> Option BQuick Check:
All attributes need type wrappers = The attribute 'OrderId' is missing its type wrapper like { S: 'o123' } [OK]
Hint: Always wrap attributes with type like { S: 'text' } or { N: '123' } [OK]
Common Mistakes:
- Omitting type wrappers for string attributes
- Confusing number values as numeric instead of string
- Assuming Item can be an array
5. You want to add a new user item with
UserId as the primary key and optional Age attribute only if it is provided (not null). Which PutItem approach correctly handles this conditional attribute?hard
Solution
Step 1: Understand optional attribute handling
In DynamoDB PutItem, you include only attributes you want saved. Omitting optional attributes if null is correct.Step 2: Evaluate other options
Setting Age to zero or empty string changes data meaning. Condition expressions control item existence, not attribute presence.Final Answer:
Include Age in the Item only if it is not null, otherwise omit it -> Option AQuick Check:
Omit null attributes to avoid wrong data = IncludeAgein the Item only if it is not null, otherwise omit it [OK]
Hint: Only add attributes if they have real values, omit nulls [OK]
Common Mistakes:
- Adding attributes with zero or empty string instead of omitting
- Misusing condition expressions for attribute presence
- Assuming PutItem auto-skips null attributes
