Practice
1. What is the primary way MongoDB stores data when used with Deno?
easy
Solution
Step 1: Understand MongoDB data structure
MongoDB stores data in collections, which are groups of documents.Step 2: Compare with other storage types
Unlike SQL databases, MongoDB does not use tables but uses collections of JSON-like documents.Final Answer:
In collections of documents -> Option AQuick 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
Solution
Step 1: Check MongoClient instantiation syntax
In Deno, you create a new MongoClient instance using the 'new' keyword and the exact class name 'MongoClient'.Step 2: Validate option correctness
const client = new MongoClient(); uses 'new MongoClient()', which is correct. Other options have incorrect casing or missing 'new'.Final Answer:
const client = new MongoClient(); -> Option DQuick 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
Solution
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.Step 2: Access the age field from the found document
The findOne call returns the document, so user?.age is 30, which is logged.Final Answer:
30 -> Option CQuick 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
Solution
Step 1: Check async connection call
The connect method returns a promise and must be awaited to ensure connection before proceeding.Step 2: Validate other code parts
Method 'database' is correct, insertOne is async and should be awaited, and MongoClient can connect to localhost.Final Answer:
Missing await before client.connect -> Option AQuick 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
Solution
Step 1: Understand bulk insert methods
insertMany is designed to insert multiple documents at once efficiently.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.Final Answer:
Use insertMany with an array of documents -> Option BQuick 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
