Bird
Raised Fist0
MongoDBquery~5 mins

Embedded documents (nested objects) in MongoDB - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is an embedded document in MongoDB?
An embedded document is a document stored inside another document as a nested object. It helps group related data together in one place.
Click to reveal answer
beginner
How do you represent a nested object in a MongoDB document?
You use curly braces inside a field to create a nested object. For example: { "address": { "city": "Paris", "zip": "75000" } }
Click to reveal answer
intermediate
Why use embedded documents instead of separate collections?
Embedded documents keep related data together, making it faster to read and easier to manage small related data without extra queries.
Click to reveal answer
intermediate
How do you query a field inside an embedded document in MongoDB?
Use dot notation to access nested fields. For example: db.collection.find({ "address.city": "Paris" }) finds documents where city inside address is Paris.
Click to reveal answer
beginner
Can embedded documents contain arrays in MongoDB?
Yes, embedded documents can have arrays as values, and those arrays can contain objects or simple values.
Click to reveal answer
What does an embedded document in MongoDB allow you to do?
AEncrypt data automatically
BCreate a new database
CRun SQL queries
DStore related data inside a single document
How do you access a nested field 'city' inside 'address' in a MongoDB query?
Aaddress->city
Baddress_city
Caddress.city
Dcity.address
Which of these is a correct example of an embedded document?
A{ name: 'John', address: { city: 'NY', zip: '10001' } }
B{ name: 'John', city: 'NY', zip: '10001' }
C[ { city: 'NY' }, { zip: '10001' } ]
Dname: 'John', address: 'NY'
Why might you choose embedded documents over references in MongoDB?
ATo increase database size
BTo reduce the number of queries needed to get related data
CTo separate unrelated data
DTo use SQL joins
Can embedded documents contain arrays in MongoDB?
AYes, arrays can be inside embedded documents
BNo, arrays are not allowed
COnly arrays of numbers are allowed
DOnly arrays of strings are allowed
Explain what embedded documents are in MongoDB and why they are useful.
Think about how you might store an address inside a user profile.
You got /3 concepts.
    Describe how to query a nested field inside an embedded document in MongoDB.
    Remember the format: 'field.subfield' in the query.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is an embedded document in MongoDB?
      easy
      A. A document stored inside another document as a nested object
      B. A separate collection linked by an ID
      C. A document stored in a different database
      D. A document stored as a file on disk

      Solution

      1. Step 1: Understand MongoDB document structure

        MongoDB stores data in documents, which can contain nested objects called embedded documents.
      2. Step 2: Identify embedded document meaning

        An embedded document is a document inside another document, not a separate collection or file.
      3. Final Answer:

        A document stored inside another document as a nested object -> Option A
      4. Quick Check:

        Embedded document = nested object inside document [OK]
      Hint: Think of a box inside another box holding related info [OK]
      Common Mistakes:
      • Confusing embedded documents with references
      • Thinking embedded documents are separate collections
      • Assuming embedded documents are stored outside the database
      2. Which of the following is the correct way to insert an embedded document 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: Review MongoDB insertOne syntax

        insertOne takes a single document object with fields and values, including nested objects.
      2. Step 2: Check each option's syntax

        db.collection.insertOne({name: 'Alice', address: {city: 'NY', zip: 10001}}) correctly nests the address object inside the main document. Others have syntax errors or wrong structure.
      3. Final Answer:

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

        Nested object inside one document = correct insert [OK]
      Hint: Use one object with nested braces for embedded docs [OK]
      Common Mistakes:
      • Passing multiple objects instead of one
      • Missing curly braces around nested document
      • Using array instead of object for embedded document
      3. Given the document { name: 'Bob', contact: { email: 'bob@example.com', phone: '1234' } }, what will the query db.users.find({ 'contact.email': 'bob@example.com' }) return?
      medium
      A. No documents, because nested fields can't be queried
      B. All documents where contact.email equals 'bob@example.com'
      C. Documents where name equals 'bob@example.com'
      D. Documents where contact is exactly 'bob@example.com'

      Solution

      1. Step 1: Understand dot notation in queries

        MongoDB uses dot notation to query fields inside embedded documents.
      2. Step 2: Analyze the query

        The query looks for documents where the embedded field contact.email matches the given value.
      3. Final Answer:

        All documents where contact.email equals 'bob@example.com' -> Option B
      4. Quick Check:

        Dot notation queries embedded fields correctly [OK]
      Hint: Use dot notation to access nested fields in queries [OK]
      Common Mistakes:
      • Trying to match entire embedded document instead of field
      • Using wrong field name without dot notation
      • Assuming nested fields can't be queried
      4. What is wrong with this update query to change the city in an embedded address document?
      db.users.updateOne({name: 'Eve'}, {address.city: 'LA'})
      medium
      A. The field name should not use dot notation
      B. The query filter is incorrect
      C. The update document is missing the $set operator
      D. updateOne cannot update embedded documents

      Solution

      1. Step 1: Recall updateOne syntax

        updateOne requires an update operator like $set to specify fields to change.
      2. Step 2: Identify missing $set operator

        The query tries to update address.city directly without $set, which is invalid syntax.
      3. Final Answer:

        The update document is missing the $set operator -> Option C
      4. Quick Check:

        Updates need $set for field changes [OK]
      Hint: Always use $set to update fields, including nested ones [OK]
      Common Mistakes:
      • Forgetting $set in update document
      • Using dot notation incorrectly in filter
      • Thinking updateOne can't change nested fields
      5. You want to store multiple phone numbers inside a user's document using embedded documents. Which schema design is best?
      hard
      A. { name: 'Sam', phones: [{ type: 'home', number: '111' }, { type: 'work', number: '222' }] }
      B. { name: 'Sam', phone1: '111', phone2: '222' }
      C. { name: 'Sam', phones: { home: '111', work: '222' } }
      D. { name: 'Sam', phones: '111,222' }

      Solution

      1. Step 1: Understand storing multiple embedded documents

        To store multiple related items, use an array of embedded documents for flexibility and clarity.
      2. Step 2: Compare options

        { name: 'Sam', phones: [{ type: 'home', number: '111' }, { type: 'work', number: '222' }] } uses an array of objects with type and number, which is clear and scalable. Others are less flexible or harder to query.
      3. Final Answer:

        { name: 'Sam', phones: [{ type: 'home', number: '111' }, { type: 'work', number: '222' }] } -> Option A
      4. Quick Check:

        Array of embedded docs best for multiple related items [OK]
      Hint: Use arrays of objects for multiple related embedded documents [OK]
      Common Mistakes:
      • Storing multiple values as comma-separated string
      • Using separate fields for each phone number
      • Using a single object without array for multiple items