Bird
Raised Fist0
Denoframework~10 mins

Deno KV (built-in key-value store) - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to open the Deno KV store.

Deno
const kv = await Deno.[1]();
Drag options to blanks, or click blank then click option'
AopenKv
Bconnect
Copen
Dstart
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'open' instead of 'openKv' causes an error.
Trying to use synchronous methods instead of async.
2fill in blank
medium

Complete the code to set a key-value pair in the KV store.

Deno
await kv.[1](['user', '123'], { name: 'Alice' });
Drag options to blanks, or click blank then click option'
Aset
Bget
Cdelete
Dupdate
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'get' instead of 'set' to store data.
Trying to use 'update' which is not a KV method.
3fill in blank
hard

Fix the error in the code to get a value from the KV store.

Deno
const result = await kv.[1](['user', '123']);
console.log(result.value);
Drag options to blanks, or click blank then click option'
Aset
Bget
Cfetch
Dretrieve
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'set' instead of 'get' to retrieve data.
Using non-existent methods like 'fetch' or 'retrieve'.
4fill in blank
hard

Fill both blanks to delete a key and check if deletion was successful.

Deno
const deleteResult = await kv.[1](['session', 'abc']);
if (deleteResult.[2]) {
  console.log('Deleted successfully');
}
Drag options to blanks, or click blank then click option'
Adelete
Bsuccess
Cvalue
Dremove
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'remove' instead of 'delete' causes errors.
Checking 'value' instead of 'success' to confirm deletion.
5fill in blank
hard

Fill all three blanks to create a transaction that sets and deletes keys atomically.

Deno
const txn = kv.[1]();
txn.[2](['cart', 'item1'], { quantity: 2 });
txn.[3](['cart', 'item2']);
await txn.commit();
Drag options to blanks, or click blank then click option'
Aatomic
Bset
Cdelete
Dtransaction
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'transaction' instead of 'atomic' to start.
Mixing up 'set' and 'delete' method calls inside the transaction.

Practice

(1/5)
1. What is the correct way to store a value in Deno KV?
easy
A. Use kv.set(["key"], value) to save data.
B. Use kv.save("key", value) to save data.
C. Use kv.put("key", value) to save data.
D. Use kv.store(["key"], value) to save data.

Solution

  1. Step 1: Understand Deno KV key format

    Deno KV uses arrays as keys, so keys must be passed as arrays like ["key"].
  2. Step 2: Identify the correct method to save data

    The method to save data is set, so kv.set(["key"], value) is correct.
  3. Final Answer:

    Use kv.set(["key"], value) to save data. -> Option A
  4. Quick Check:

    Key as array + set method = Use kv.set(["key"], value) to save data. [OK]
Hint: Remember: keys are arrays and method is set [OK]
Common Mistakes:
  • Using string keys instead of array keys
  • Using wrong method names like save or put
  • Passing key as a single string instead of array
2. Which of the following is the correct syntax to read a value from Deno KV?
easy
A. const result = kv.get(["key"]);
B. const result = await kv.get("key");
C. const result = await kv.get(["key"]);
D. const result = kv.get("key");

Solution

  1. Step 1: Recognize key format for get method

    Deno KV requires keys as arrays, so the key must be passed as ["key"].
  2. Step 2: Confirm asynchronous usage of get

    The get method is asynchronous, so it must be awaited.
  3. Final Answer:

    const result = await kv.get(["key"]); -> Option C
  4. Quick Check:

    Await + array key + get method = const result = await kv.get(["key"]); [OK]
Hint: Always await get and use array keys [OK]
Common Mistakes:
  • Not awaiting the get method
  • Passing key as string instead of array
  • Using synchronous call without await
3. What will be the output of this code snippet?
const kv = await Deno.openKv();
await kv.set(["user", "name"], "Alice");
const result = await kv.get(["user", "name"]);
console.log(result.value);
medium
A. undefined
B. "Alice"
C. null
D. Throws an error

Solution

  1. Step 1: Store value with key ["user", "name"]

    The code stores the string "Alice" under the key array ["user", "name"].
  2. Step 2: Retrieve the stored value using the same key

    The get method fetches the stored value, which is "Alice".
  3. Final Answer:

    "Alice" -> Option B
  4. Quick Check:

    Set then get with same key returns stored value [OK]
Hint: Set then get with same key returns stored value [OK]
Common Mistakes:
  • Expecting key as string instead of array
  • Not awaiting async calls
  • Confusing result object with direct value
4. Identify the error in this Deno KV usage:
const kv = await Deno.openKv();
await kv.set("session", "active");
const status = await kv.get(["session"]);
console.log(status.value);
medium
A. The key in set should be an array, not a string.
B. The get method should not be awaited.
C. The value "active" must be an object, not a string.
D. The console.log should print status directly, not status.value.

Solution

  1. Step 1: Check key format in set method

    The set method requires the key to be an array, but here it is a string "session".
  2. Step 2: Confirm correct key format for get method

    The get method uses the key as an array ["session"], which is correct.
  3. Final Answer:

    The key in set should be an array, not a string. -> Option A
  4. Quick Check:

    Key must be array in set and get [OK]
Hint: Keys must always be arrays in set and get [OK]
Common Mistakes:
  • Using string keys instead of array keys
  • Not awaiting async methods
  • Misunderstanding value access from get result
5. You want to store user preferences with keys like ["user", userId, "prefs"] and values as objects. Which code correctly updates preferences for userId 42 without overwriting other keys?
const kv = await Deno.openKv();
const userId = 42;
const newPrefs = { theme: "dark" };
// Which code below is correct?
hard
A. await kv.set([userId, "prefs"], newPrefs);
B. await kv.set(["user", "prefs"], newPrefs);
C. await kv.set(["user", userId], newPrefs);
D. await kv.set(["user", userId, "prefs"], newPrefs);

Solution

  1. Step 1: Understand key structure for user preferences

    The key must include "user", the userId, and "prefs" to uniquely identify preferences per user.
  2. Step 2: Check which option uses the full key correctly

    await kv.set(["user", userId, "prefs"], newPrefs); uses ["user", userId, "prefs"] which matches the required key structure.
  3. Final Answer:

    await kv.set(["user", userId, "prefs"], newPrefs); -> Option D
  4. Quick Check:

    Full key array with userId keeps keys unique [OK]
Hint: Include userId in key array to avoid overwriting [OK]
Common Mistakes:
  • Omitting userId from key causing overwrites
  • Using incomplete key arrays
  • Confusing order of key elements
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard