Bird
Raised Fist0
MongoDBquery~10 mins

Insert with nested documents in MongoDB - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to insert a document with a nested address field.

MongoDB
db.users.insertOne({ name: "Alice", address: [1] })
Drag options to blanks, or click blank then click option'
Acity: "New York", zip: "10001"
B"city: New York, zip: 10001"
C{ city: "New York", zip: "10001" }
D[ city: "New York", zip: "10001" ]
Attempts:
3 left
💡 Hint
Common Mistakes
Using square brackets instead of curly braces for nested documents.
Writing nested fields as a string instead of an object.
2fill in blank
medium

Complete the code to insert a user with nested contact details.

MongoDB
db.users.insertOne({ name: "Bob", contact: [1] })
Drag options to blanks, or click blank then click option'
A{ phone: "123-4567", email: "bob@example.com" }
B[ phone: "123-4567", email: "bob@example.com" ]
C"phone: 123-4567, email: bob@example.com"
Dphone: "123-4567", email: "bob@example.com"
Attempts:
3 left
💡 Hint
Common Mistakes
Using square brackets instead of curly braces.
Writing nested fields as a string.
3fill in blank
hard

Fix the error in the insertOne command to correctly insert nested documents.

MongoDB
db.orders.insertOne({ orderId: 101, details: [1] })
Drag options to blanks, or click blank then click option'
A{ product: "Book", quantity: 2 }
B"product: Book, quantity: 2"
C[ product: "Book", quantity: 2 ]
Dproduct: "Book", quantity: 2
Attempts:
3 left
💡 Hint
Common Mistakes
Using square brackets for nested documents.
Writing nested fields as a string.
4fill in blank
hard

Fill both blanks to insert a product with nested specifications and dimensions.

MongoDB
db.products.insertOne({ name: "Laptop", specs: [1], dimensions: [2] })
Drag options to blanks, or click blank then click option'
A{ cpu: "Intel i7", ram: "16GB" }
B[ cpu: "Intel i7", ram: "16GB" ]
C{ width: 13, height: 9, depth: 0.6 }
D[ width: 13, height: 9, depth: 0.6 ]
Attempts:
3 left
💡 Hint
Common Mistakes
Using arrays instead of objects for nested documents.
Mixing curly braces and square brackets incorrectly.
5fill in blank
hard

Fill all three blanks to insert a blog post with nested author, tags, and metadata fields.

MongoDB
db.posts.insertOne({ title: "MongoDB Tips", author: [1], tags: [2], metadata: [3] })
Drag options to blanks, or click blank then click option'
A{ name: "Jane", email: "jane@example.com" }
B[ "database", "nosql", "mongodb" ]
C{ views: 150, likes: 10 }
D"database, nosql, mongodb"
Attempts:
3 left
💡 Hint
Common Mistakes
Using strings instead of arrays for tags.
Using arrays instead of objects for author or metadata.

Practice

(1/5)
1. What is the main purpose of using nested documents in MongoDB inserts?
easy
A. To create multiple collections at once
B. To group related data inside one record
C. To speed up query execution automatically
D. To enforce strict schema validation

Solution

  1. Step 1: Understand nested documents concept

    Nested documents allow storing related data together inside a single MongoDB document using curly braces { }.
  2. Step 2: Identify the purpose of grouping data

    This grouping helps keep related information organized and easy to access in one record.
  3. Final Answer:

    To group related data inside one record -> Option B
  4. Quick Check:

    Nested documents = Group related data [OK]
Hint: Nested documents group related info inside one record [OK]
Common Mistakes:
  • Thinking nested documents create multiple collections
  • Assuming nested documents speed up queries automatically
  • Confusing nested documents with schema enforcement
2. Which of the following is the correct syntax to insert a nested document using insertOne in MongoDB?
easy
A. db.collection.insertOne({name: "Alice", address: {city: "NY", zip: 10001}})
B. db.collection.insertOne([name: "Alice", address: {city: "NY", zip: 10001}])
C. db.collection.insertOne({name: "Alice", address: [city: "NY", zip: 10001]})
D. db.collection.insertOne({name: "Alice", address: "city: NY, zip: 10001"})

Solution

  1. Step 1: Check the correct use of curly braces for nested documents

    Nested documents must be inside curly braces { }, not square brackets [ ].
  2. Step 2: Verify the overall insertOne syntax

    The insertOne method takes a single document object with key-value pairs, including nested documents correctly enclosed in braces.
  3. Final Answer:

    db.collection.insertOne({name: "Alice", address: {city: "NY", zip: 10001}}) -> Option A
  4. Quick Check:

    Curly braces for nested docs + insertOne syntax = db.collection.insertOne({name: "Alice", address: {city: "NY", zip: 10001}}) [OK]
Hint: Use curly braces { } for nested docs inside insertOne [OK]
Common Mistakes:
  • Using square brackets instead of curly braces for nested docs
  • Passing an array instead of an object to insertOne
  • Putting nested data as a string instead of an object
3. Given the following insert command, what will be the stored document in the collection?
db.users.insertOne({name: "Bob", contact: {email: "bob@example.com", phone: "123-456"}})
medium
A. { "name": "Bob", "contact": { "email": "bob@example.com", "phone": "123-456" } }
B. { "name": "Bob", "contact.email": "bob@example.com", "contact.phone": "123-456" }
C. { "name": "Bob", "contact": [ "email", "phone" ] }
D. { "name": "Bob", "email": "bob@example.com", "phone": "123-456" }

Solution

  1. Step 1: Understand how nested documents are stored

    The nested document under 'contact' is stored as a sub-document with keys 'email' and 'phone'.
  2. Step 2: Compare options with expected nested structure

    Only { "name": "Bob", "contact": { "email": "bob@example.com", "phone": "123-456" } } correctly shows 'contact' as an object containing 'email' and 'phone' keys.
  3. Final Answer:

    { "name": "Bob", "contact": { "email": "bob@example.com", "phone": "123-456" } } -> Option A
  4. Quick Check:

    Nested document stored as object = { "name": "Bob", "contact": { "email": "bob@example.com", "phone": "123-456" } } [OK]
Hint: Nested documents appear as objects inside main document [OK]
Common Mistakes:
  • Flattening nested keys incorrectly
  • Using arrays instead of objects for nested data
  • Placing nested fields at top level
4. Identify the error in this MongoDB insert command:
db.products.insertOne({name: "Pen", details: [color: "blue", price: 1.5]})
medium
A. Missing comma between fields in main document
B. Missing quotes around field names
C. Using square brackets instead of curly braces for nested document
D. insertOne cannot insert nested documents

Solution

  1. Step 1: Check syntax for nested documents

    Nested documents must use curly braces { }, but here square brackets [ ] are used incorrectly.
  2. Step 2: Confirm other syntax elements are correct

    Field names are quoted correctly or allowed without quotes, and commas are present; insertOne supports nested docs.
  3. Final Answer:

    Using square brackets instead of curly braces for nested document -> Option C
  4. Quick Check:

    Nested docs need { }, not [ ] [OK]
Hint: Nested docs require curly braces { }, not square brackets [ ] [OK]
Common Mistakes:
  • Confusing arrays with nested documents
  • Thinking insertOne can't insert nested docs
  • Forgetting commas between fields
5. You want to insert multiple user profiles with nested address documents using insertMany. Which command correctly inserts two users with nested addresses?
hard
A. db.users.insertMany([{name: "Anna", address: [city: "LA", zip: 90001]}, {name: "Mark", address: [city: "SF", zip: 94105]}])
B. db.users.insertMany({name: "Anna", address: {city: "LA", zip: 90001}}, {name: "Mark", address: {city: "SF", zip: 94105}})
C. db.users.insertMany([{name: "Anna", address: "city: LA, zip: 90001"}, {name: "Mark", address: "city: SF, zip: 94105"}])
D. db.users.insertMany([{name: "Anna", address: {city: "LA", zip: 90001}}, {name: "Mark", address: {city: "SF", zip: 94105}}])

Solution

  1. Step 1: Verify insertMany syntax with array of documents

    insertMany requires an array of document objects, each with nested documents using curly braces.
  2. Step 2: Check nested document syntax inside each user

    Nested 'address' fields must be objects with curly braces, not arrays or strings.
  3. Final Answer:

    db.users.insertMany([{name: "Anna", address: {city: "LA", zip: 90001}}, {name: "Mark", address: {city: "SF", zip: 94105}}]) -> Option D
  4. Quick Check:

    insertMany + array + nested docs with { } = db.users.insertMany([{name: "Anna", address: {city: "LA", zip: 90001}}, {name: "Mark", address: {city: "SF", zip: 94105}}]) [OK]
Hint: Use array of objects with nested docs in insertMany [OK]
Common Mistakes:
  • Passing multiple documents as separate arguments instead of array
  • Using arrays instead of objects for nested documents
  • Putting nested data as strings instead of objects