Embedded Documents
Embedded Documents: free step-by-step lesson with examples, common mistakes, and interview tips — part of MongoDB Tutorial on Toolliyo Academy.
On this page
MongoDB Tutorial · Lesson 31 of 100
Embedded Documents
Foundations & CRUD ✓ → Queries & Schema → Aggregation & Scale → Atlas & Projects
Queries & Schema · 2 — Design · ~6 min · MongoDB — Schema Design
What is this?
Embedded documents are objects nested inside a parent document — like address inside a user, or items inside an order. You read related data in one round trip.
Why should you care?
Profile pages almost always need the address with the user. Embedding avoids a second query when the nested data is small and owned by the parent.
See it live — copy this example
Open mongosh or MongoDB Compass, select database nosqlverse, then run the example. Change one field and run again.
db.users.insertOne({
username: "meera",
email: "meera@nosqlverse.dev",
address: {
line1: "12 MG Road",
city: "Bengaluru",
pincode: "560001"
}
})
db.users.find({ "address.city": "Bengaluru" }, { username: 1, address: 1 })
Run Example »
Edit the code below and click Run to see the result in Toolliyo’s live editor.
What happened?
- address is a nested object, not a separate collection.
- Dot notation filters on city.
- Projection returns username and the whole address subdocument together.
Practice next
- Insert the user with embedded address.
- Query by address.pincode.
- Update with updateOne and $set: { "address.city": "Mysuru" }.
- Embed preferences: { locale: "en-IN", theme: "dark" }.
- Add a second address in an addresses array.
Remember
Embed data you read together. Query nested fields with dot notation. Watch the 16MB document limit.
Checkout shipping block
Flipkart stores the chosen delivery address snapshot on the order document.
Outcome: Invoice printing needs no join to a changing profile address.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!