Bird
Raised Fist0
Denoframework~20 mins

MongoDB with Deno - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
MongoDB with Deno Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
2:00remaining
Find documents with a specific field value
Given a MongoDB collection named users with documents containing age and name fields, what will be the output of this query?

const result = await users.find({ age: { $gt: 25 } }).toArray();

Assume the collection has:
[{ name: "Alice", age: 30 }, { name: "Bob", age: 22 }, { name: "Carol", age: 27 }]
Deno
const result = await users.find({ age: { $gt: 25 } }).toArray();
A[{ name: "Alice", age: 30 }, { name: "Carol", age: 27 }]
B[{ name: "Bob", age: 22 }]
C[{ name: "Alice", age: 30 }, { name: "Bob", age: 22 }, { name: "Carol", age: 27 }]
D[]
Attempts:
2 left
💡 Hint
Look for documents where age is greater than 25.
📝 Syntax
intermediate
2:00remaining
Identify the syntax error in MongoDB update query
Which option contains a syntax error when updating a document in MongoDB using Deno?

Update the user with _id: 1 to set name to "John".
Deno
await users.updateOne({ _id: 1 }, { $set: { name: "John" } });
Aawait users.updateOne({ _id: 1 }, { $set: { name: "John" } });
Bawait users.updateOne({ _id: 1 }, { set: { name: "John" } });
Cawait users.updateOne({ _id: 1 }, { $set: name: "John" });
Dawait users.updateOne({ _id: 1 }, { $set: { name: "John" } }
Attempts:
2 left
💡 Hint
MongoDB update operators start with a $ sign.
❓ optimization
advanced
2:00remaining
Optimize a MongoDB query for large collections
You want to find all users with status: "active" in a large collection. Which option will optimize the query performance best?
Aawait users.find({ status: "active" }).hint({ status: 1 }).toArray();
Bawait users.find({ status: "active" }).limit(100).toArray();
Cawait users.find({ status: "active" }).toArray();
Dawait users.find({ status: { $eq: "active" } }).toArray();
Attempts:
2 left
💡 Hint
Using an index hint can improve query speed if an index exists.
🔧 Debug
advanced
2:00remaining
Debug why a MongoDB insertOne fails
You run this code to insert a document:

await users.insertOne({ _id: 1, name: "Eve" });

But it throws an error: duplicate key error. What is the likely cause?
AThe name field must be unique but is duplicated.
BThe _id field is missing in the document.
CinsertOne requires a second argument for options.
DThe collection already has a document with _id: 1.
Attempts:
2 left
💡 Hint
Duplicate key errors usually relate to unique fields like _id.
🧠 Conceptual
expert
2:00remaining
Understanding MongoDB transactions with Deno
Which statement about MongoDB transactions in Deno is correct?
ATransactions automatically retry on network errors without developer code.
BTransactions can only be used with replica sets or sharded clusters.
CTransactions can span multiple databases on different servers.
DTransactions are not supported in MongoDB when using Deno.
Attempts:
2 left
💡 Hint
Think about MongoDB architecture requirements for transactions.

Practice

(1/5)
1. What is the primary way MongoDB stores data when used with Deno?
easy
A. In collections of documents
B. In tables with rows and columns
C. As key-value pairs in a flat file
D. In XML files

Solution

  1. Step 1: Understand MongoDB data structure

    MongoDB stores data in collections, which are groups of documents.
  2. Step 2: Compare with other storage types

    Unlike SQL databases, MongoDB does not use tables but uses collections of JSON-like documents.
  3. Final Answer:

    In collections of documents -> Option A
  4. Quick Check:

    MongoDB = collections of documents [OK]
Hint: Remember MongoDB uses collections, not tables [OK]
Common Mistakes:
  • Confusing MongoDB with SQL tables
  • Thinking MongoDB stores data in flat files
  • Assuming XML storage
2. Which of the following is the correct way to create a MongoClient instance in Deno?
easy
A. const client = new mongo.Client();
B. const client = MongoClient();
C. const client = mongoClient();
D. const client = new MongoClient();

Solution

  1. Step 1: Check MongoClient instantiation syntax

    In Deno, you create a new MongoClient instance using the 'new' keyword and the exact class name 'MongoClient'.
  2. Step 2: Validate option correctness

    const client = new MongoClient(); uses 'new MongoClient()', which is correct. Other options have incorrect casing or missing 'new'.
  3. Final Answer:

    const client = new MongoClient(); -> Option D
  4. Quick Check:

    Use 'new MongoClient()' to create client [OK]
Hint: Use 'new' keyword with exact class name MongoClient [OK]
Common Mistakes:
  • Omitting 'new' keyword
  • Wrong casing in 'MongoClient'
  • Using incorrect module or variable names
3. Given the following Deno MongoDB code snippet, what will be the output?
const client = new MongoClient();
await client.connect("mongodb://localhost:27017");
const db = client.database("testdb");
const users = db.collection("users");

await users.insertOne({ name: "Alice", age: 30 });
const user = await users.findOne({ name: "Alice" });
console.log(user?.age);
medium
A. undefined
B. null
C. 30
D. Error: user not found

Solution

  1. Step 1: Insert a document and then find it

    The code inserts a user document with name 'Alice' and age 30, then queries for that user.
  2. Step 2: Access the age field from the found document

    The findOne call returns the document, so user?.age is 30, which is logged.
  3. Final Answer:

    30 -> Option C
  4. Quick Check:

    Inserted age 30, found age 30 [OK]
Hint: Inserted document fields appear in findOne result [OK]
Common Mistakes:
  • Assuming findOne returns undefined if document exists
  • Confusing null and undefined
  • Forgetting to await async calls
4. Identify the error in this Deno MongoDB code snippet:
const client = new MongoClient();
client.connect("mongodb://localhost:27017");
const db = client.database("testdb");
const users = db.collection("users");
await users.insertOne({ name: "Bob" });
medium
A. Missing await before client.connect
B. Wrong method name 'database' instead of 'db'
C. insertOne should not be awaited
D. MongoClient cannot connect to localhost

Solution

  1. Step 1: Check async connection call

    The connect method returns a promise and must be awaited to ensure connection before proceeding.
  2. Step 2: Validate other code parts

    Method 'database' is correct, insertOne is async and should be awaited, and MongoClient can connect to localhost.
  3. Final Answer:

    Missing await before client.connect -> Option A
  4. Quick Check:

    Always await async connect calls [OK]
Hint: Always await async connect calls [OK]
Common Mistakes:
  • Forgetting await on async connect
  • Confusing method names
  • Not awaiting insertOne
5. You want to insert multiple user documents in a MongoDB collection using Deno. Which approach correctly inserts multiple documents efficiently?
hard
A. Use insertOne in a loop for each document
B. Use insertMany with an array of documents
C. Call insertOne once with an array of documents
D. Use findOne to insert documents

Solution

  1. Step 1: Understand bulk insert methods

    insertMany is designed to insert multiple documents at once efficiently.
  2. Step 2: Compare options

    insertOne inserts a single document; calling it in a loop is inefficient. insertOne cannot take an array. findOne is for querying, not inserting.
  3. Final Answer:

    Use insertMany with an array of documents -> Option B
  4. Quick Check:

    Bulk insert = insertMany [OK]
Hint: Use insertMany for multiple documents at once [OK]
Common Mistakes:
  • Using insertOne repeatedly instead of insertMany
  • Passing array to insertOne
  • Confusing findOne with insert methods
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