Bird
Raised Fist0
DynamoDBquery~5 mins

Attribute types (S, N, B, BOOL, L, M) in DynamoDB - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does the attribute type 'S' represent in DynamoDB?
The 'S' attribute type stands for String. It stores text values like names or descriptions.
Click to reveal answer
beginner
What kind of data does the 'N' attribute type hold in DynamoDB?
The 'N' attribute type holds Number data. It can store integers or decimals for things like age or price.
Click to reveal answer
intermediate
Explain the 'B' attribute type in DynamoDB.
The 'B' attribute type stores Binary data. This means raw bytes like images or encrypted data.
Click to reveal answer
beginner
What does the 'BOOL' attribute type represent?
The 'BOOL' attribute type stores Boolean values: true or false. It is useful for flags or yes/no data.
Click to reveal answer
intermediate
Describe the difference between 'L' and 'M' attribute types in DynamoDB.
'L' stands for List, which is an ordered collection of values. 'M' stands for Map, which is a collection of key-value pairs, like a small dictionary.
Click to reveal answer
Which DynamoDB attribute type would you use to store a user's age?
AN (Number)
BS (String)
CB (Binary)
DBOOL (Boolean)
If you want to store a true/false flag in DynamoDB, which attribute type should you use?
AL (List)
BM (Map)
CBOOL (Boolean)
DB (Binary)
Which attribute type is best for storing a collection of key-value pairs?
AM (Map)
BL (List)
CS (String)
DN (Number)
What does the 'B' attribute type store in DynamoDB?
ABoolean values
BBinary data
CNumbers
DLists
Which attribute type would you use to store a list of items in order?
AM (Map)
BBOOL (Boolean)
CS (String)
DL (List)
Explain the main DynamoDB attribute types S, N, B, BOOL, L, and M with simple examples.
Think about what kind of data each type holds and how you might use it in real life.
You got /6 concepts.
    How would you choose between using a List (L) and a Map (M) attribute type in DynamoDB?
    Consider if you want just a sequence or a dictionary-like structure.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      Which DynamoDB attribute type is used to store plain text strings?

      easy
      A. B
      B. N
      C. BOOL
      D. S

      Solution

      1. Step 1: Understand attribute types in DynamoDB

        DynamoDB uses attribute types to define data kinds. 'S' stands for string (text).
      2. Step 2: Match the type to text data

        Since 'S' means string, it is the correct type for plain text.
      3. Final Answer:

        S -> Option D
      4. Quick Check:

        Text data = S [OK]
      Hint: Text data always uses type S in DynamoDB [OK]
      Common Mistakes:
      • Confusing N (number) with S (string)
      • Choosing BOOL for text
      • Using B for text data
      2.

      Which of the following is the correct syntax to define a boolean attribute named isActive in a DynamoDB item?

      {"isActive": {"BOOL": true}}
      easy
      A. {"isActive": {"S": "true"}}
      B. {"isActive": {"BOOL": true}}
      C. {"isActive": {"N": 1}}
      D. {"isActive": {"B": true}}

      Solution

      1. Step 1: Identify the correct attribute type for boolean

        Boolean values in DynamoDB use the BOOL type with true or false.
      2. Step 2: Check the syntax for boolean attribute

        The correct syntax is {"isActive": {"BOOL": true}} to represent a boolean true.
      3. Final Answer:

        {"isActive": {"BOOL": true}} -> Option B
      4. Quick Check:

        Boolean attribute uses BOOL type [OK]
      Hint: Use BOOL type with true/false for boolean values [OK]
      Common Mistakes:
      • Using S type with string 'true'
      • Using N type with 1 instead of BOOL
      • Using B type for boolean
      3.

      Given the following DynamoDB item attribute, what is the type of tags?

      {"tags": {"L": [ {"S": "red"}, {"S": "blue"}, {"S": "green"} ] }}
      medium
      A. List (L)
      B. Map (M)
      C. String (S)
      D. Binary (B)

      Solution

      1. Step 1: Identify the attribute type key

        The attribute uses the key "L", which stands for List in DynamoDB.
      2. Step 2: Understand the value structure

        The value is an array of strings, confirming it is a list of string elements.
      3. Final Answer:

        List (L) -> Option A
      4. Quick Check:

        Attribute key L means List [OK]
      Hint: Look for L key to identify lists in DynamoDB [OK]
      Common Mistakes:
      • Confusing L with M (map)
      • Thinking it's a string because of S inside list
      • Choosing B for binary data
      4.

      Identify the error in this DynamoDB attribute definition:

      {"profile": {"M": {"age": {"S": 30}, "name": {"S": "Alice"}}}}
      medium
      A. The name attribute should use type N, not S
      B. The map (M) type cannot contain nested attributes
      C. The age attribute should use type N, not S
      D. Binary (B) type is missing for profile

      Solution

      1. Step 1: Analyze the attribute types inside the map

        The map contains "age" with type S and value 30, and "name" with type S and value "Alice".
      2. Step 2: Check if types match values

        Age is a number (30), so it should use type N, not S (string). Name is correctly a string.
      3. Final Answer:

        Age attribute should use type N, not S -> Option C
      4. Quick Check:

        Numbers use N type, not S [OK]
      Hint: Numbers inside maps must use N type, not S [OK]
      Common Mistakes:
      • Using S for numbers
      • Thinking maps can't nest attributes
      • Confusing name type as number
      5.

      You want to store a user's profile with a list of phone numbers and a map of address details in DynamoDB. Which attribute types should you use for phoneNumbers and address respectively?

      hard
      A. phoneNumbers: L, address: M
      B. phoneNumbers: M, address: L
      C. phoneNumbers: S, address: B
      D. phoneNumbers: BOOL, address: N

      Solution

      1. Step 1: Identify the type for a list of phone numbers

        A list of phone numbers is a collection, so it should use the List (L) type.
      2. Step 2: Identify the type for address details as key-value pairs

        Address details are structured data with keys and values, so Map (M) type is appropriate.
      3. Final Answer:

        phoneNumbers: L, address: M -> Option A
      4. Quick Check:

        Lists = L, Maps = M [OK]
      Hint: Use L for lists, M for maps (objects) in DynamoDB [OK]
      Common Mistakes:
      • Swapping L and M types
      • Using S for lists
      • Using BOOL or N incorrectly