Bird
Raised Fist0
Denoframework~10 mins

MongoDB with Deno - Interactive Code Practice

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

Complete the code to connect to MongoDB using Deno.

Deno
import { MongoClient } from "https://deno.land/x/mongo@v0.31.1/mod.ts";

const client = new MongoClient();
await client.[1]("mongodb://localhost:27017");
Drag options to blanks, or click blank then click option'
Aopen
Bconnect
Cstart
DconnectTo
Attempts:
3 left
💡 Hint
Common Mistakes
Using a method that does not exist like 'open' or 'start'.
2fill in blank
medium

Complete the code to select the database named 'testdb'.

Deno
const db = client.[1]("testdb");
Drag options to blanks, or click blank then click option'
AgetDatabase
Bdb
Cdatabase
DselectDb
Attempts:
3 left
💡 Hint
Common Mistakes
Using methods that do not exist or are not part of the API.
3fill in blank
hard

Fix the error in the code to get a collection named 'users'.

Deno
const users = db.[1]("users");
Drag options to blanks, or click blank then click option'
AgetCollections
Bcollections
CgetCollection
Dcollection
Attempts:
3 left
💡 Hint
Common Mistakes
Using plural or incorrect method names like 'collections' or 'getCollection'.
4fill in blank
hard

Fill both blanks to insert a document with name 'Alice' and age 30 into the 'users' collection.

Deno
await users.[1]({ name: "Alice", age: [2] });
Drag options to blanks, or click blank then click option'
AinsertOne
BinsertMany
C30
D25
Attempts:
3 left
💡 Hint
Common Mistakes
Using insertMany for a single document or wrong age value.
5fill in blank
hard

Fill all three blanks to find all users older than 25 and print their names.

Deno
const cursor = users.[1]({ age: { [2]: [3] } });
for await (const user of cursor) {
  console.log(user.name);
}
Drag options to blanks, or click blank then click option'
Afind
B$gt
C25
D$lt
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong operators like $lt or wrong method names.

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