Courseiva
Data Modeling →easyMultiple Choice

C100DEV Data Modeling Practice Question

A team is designing a schema for a MongoDB application that stores user profiles. Each profile includes a list of the user's favorite movies, which is typically fewer than 20 items and updated infrequently. Queries often retrieve the entire profile along with the favorite movies. Which data modeling approach is most appropriate?

⚠ Common exam trap

The trap here is assuming that any list should be referenced to avoid duplication, but MongoDB's guidance is to embed when the data is small and accessed together.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

Embed the favorite movies as an array of subdocuments within the user profile document.

For a one-to-few relationship where the embedded data is small, updated infrequently, and always accessed with the parent document, embedding is the recommended approach. It simplifies queries, ensures atomicity, and provides the best read performance without the overhead of joins or multiple round trips.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    Normalize the data by creating a separate collection for movies and a junction collection linking users and movies.

    Why it's wrong here

    This approach mimics a relational model with many-to-many relationships, which is overkill for a simple list of favorite movies. It would require multiple collections and complex queries, increasing development time and reducing performance. MongoDB's flexible document model encourages embedding for such one-to-few relationships.

  • ✗

    Use the Bucket Pattern to group favorite movies into buckets of 10.

    Why it's wrong here

    The Bucket Pattern is designed for time-series or high-volume data to reduce document count, not for small, static lists like favorite movies. Applying it here would unnecessarily complicate the schema and queries without providing any benefit, as the list is already small and embedded.

  • ✗

    Store favorite movies in a separate collection and reference them by _id in the user profile.

    Why it's wrong here

    Referencing would require an additional query or $lookup to retrieve the favorite movies, adding latency and complexity. Since the list is small and accessed with the profile, embedding is more efficient. Referencing is better for large, independently accessed data, which is not the case here.

  • ✓

    Embed the favorite movies as an array of subdocuments within the user profile document.

    Why this is correct

    Embedding the favorite movies array within the user profile document is ideal here because the list is small, updated infrequently, and always retrieved together with the profile. This approach provides atomic updates and fast reads with a single query, avoiding the need for joins. It aligns with MongoDB's recommendation to embed when there is a one-to-few relationship and data is accessed together.

About these practice questions

Courseiva writes every C100DEV question from scratch — 259 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written and reviewed by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

Last reviewed September 2026 · checked against the official MongoDB exam blueprint

This C100DEV practice question is part of Courseiva's free MongoDB certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the C100DEV exam.