Embedding means storing related data inside a single document as nested objects or arrays. It keeps related information together in one place.
Click to reveal answer
beginner
What is referencing in MongoDB?
Referencing means storing related data in separate documents and linking them using unique IDs. It keeps data separate but connected.
Click to reveal answer
intermediate
When should you choose embedding over referencing?
Choose embedding when related data is mostly read together, changes rarely, and the data size stays small enough to fit in one document.
Click to reveal answer
intermediate
When is referencing a better choice than embedding?
Use referencing when related data changes often, is large, or is shared across many documents to avoid duplication and keep data consistent.
Click to reveal answer
advanced
What is a key trade-off between embedding and referencing?
Embedding improves read speed by keeping data together but can cause large documents. Referencing keeps data small and consistent but needs extra queries to join data.
Click to reveal answer
Which MongoDB design stores related data inside the same document?
ASharding
BReferencing
CIndexing
DEmbedding
✗ Incorrect
Embedding stores related data inside the same document as nested objects or arrays.
When should you prefer referencing over embedding?
AWhen related data changes frequently and is shared
BWhen related data is small and read together
CWhen you want faster reads with no extra queries
DWhen you want to avoid using unique IDs
✗ Incorrect
Referencing is better when related data changes often or is shared to avoid duplication.
What is a downside of embedding large related data?
AData is duplicated
BData becomes inconsistent
CDocuments become too large
DRequires multiple queries
✗ Incorrect
Embedding large data can make documents too big, which affects performance.
Which design requires extra queries to get related data?
AEmbedding
BReferencing
CDenormalization
DAggregation
✗ Incorrect
Referencing stores data separately, so you need extra queries to join related data.
Embedding is best when:
AData is mostly read together and small
BData is large and shared
CData changes frequently
DYou want to avoid nested documents
✗ Incorrect
Embedding works well when related data is small and usually read together.
Explain the main differences between embedding and referencing in MongoDB.
Think about how data is stored and accessed.
You got /4 concepts.
Describe a scenario where embedding is better than referencing and why.
Imagine a blog post with comments stored inside it.
You got /4 concepts.
Practice
(1/5)
1. Which scenario is best suited for embedding related data in MongoDB?
easy
A. Storing a user's profile and their list of addresses when addresses are few and rarely shared.
B. Storing product details and linking to multiple categories by ID.
C. Storing large documents that are frequently updated independently.
D. Storing shared tags used by many blog posts.
Solution
Step 1: Understand embedding use case
Embedding is best when related data is small and tightly coupled, like a user's addresses.
Step 2: Analyze options for embedding
Storing a user's profile and their list of addresses when addresses are few and rarely shared fits because addresses are few and not shared, so embedding improves read speed.
Final Answer:
Storing a user's profile and their list of addresses when addresses are few and rarely shared. -> Option A
Quick Check:
Embedding = small, tightly related data [OK]
Hint: Embed when data is small and tightly linked [OK]
Common Mistakes:
Embedding large or shared data causing duplication
Referencing small, simple data unnecessarily
2. Which of the following is the correct way to reference a document in MongoDB?
easy
A. { "author_id": ObjectId("507f1f77bcf86cd799439011") }
B. { "author": { "$ref": "users", "$id": ObjectId("507f1f77bcf86cd799439011") } }
C. { "author": ObjectId("507f1f77bcf86cd799439011") }
D. { "author": "507f1f77bcf86cd799439011" }
Solution
Step 1: Identify referencing syntax
Referencing stores the related document's ID as a field, usually named with _id suffix.
Step 2: Check options for correct ID reference
{ "author_id": ObjectId("507f1f77bcf86cd799439011") } correctly stores the ObjectId with a clear field name author_id.
Final Answer:
{ "author_id": ObjectId("507f1f77bcf86cd799439011") } -> Option A
Quick Check:
Reference = store related document's ID [OK]
Hint: Reference by storing ObjectId in a field ending with _id [OK]
Common Mistakes:
Using string instead of ObjectId for references
Using $ref and $id without DBRef context
Embedding full document instead of referencing
3. Given a MongoDB collection orders where each order embeds a small array of items, what is the expected result of querying an order by ID?
medium
A. Only the order document without any items data.
B. An error because embedded arrays cannot be queried.
C. The order document with all embedded items included in the result.
D. A list of item documents from a separate collection.
Solution
Step 1: Understand embedding query behavior
When data is embedded, querying the parent document returns all embedded data inside it.
Step 2: Analyze query result for embedded items
Querying by order ID returns the order document including the embedded items array.
Final Answer:
The order document with all embedded items included in the result. -> Option C
Quick Check:
Embedding returns full embedded data [OK]
Hint: Embedded data returns inside parent document query [OK]
Common Mistakes:
Expecting separate documents for embedded data
Thinking embedded arrays cause query errors
Confusing referencing with embedding results
4. You have a MongoDB schema where user documents embed an array of posts. You notice performance issues when updating posts frequently. What is the likely cause and fix?
medium
A. Indexing embedded arrays causes slow updates; remove indexes.
B. Referencing posts causes slow updates; embed posts instead.
C. Using ObjectId for posts causes slow updates; use strings instead.
D. Embedding large arrays causes slow updates; switch to referencing posts separately.
Solution
Step 1: Identify embedding impact on updates
Embedding large or frequently updated arrays causes the whole document to be rewritten, slowing updates.
Step 2: Choose referencing to improve update performance
Referencing posts separately allows updating posts without rewriting the entire user document.
Final Answer:
Embedding large arrays causes slow updates; switch to referencing posts separately. -> Option D
Quick Check:
Large/frequent updates = use referencing [OK]
Hint: Large, frequently updated data? Use referencing [OK]
Common Mistakes:
Embedding large arrays despite frequent updates
Ignoring update performance impact
Misunderstanding ObjectId role in updates
5. You are designing a MongoDB schema for a blogging platform. Each blog post has many comments, and comments can be edited or deleted independently. Also, comments can be very large in number. What is the best design choice?
hard
A. Embed all comments inside each blog post document.
B. Reference comments in a separate collection linked by post ID.
C. Embed only the first 10 comments and reference the rest.
D. Store comments as a JSON string inside the blog post.
Solution
Step 1: Analyze comment characteristics
Comments are numerous, large, and updated independently, so embedding would cause large documents and slow updates.
Step 2: Choose referencing for scalability and independent updates
Referencing comments in a separate collection allows efficient updates and avoids large blog post documents.
Final Answer:
Reference comments in a separate collection linked by post ID. -> Option B