WalzoneInterview Prep
πŸ“ž Interviewing soon? Practice with a realistic AI mock phone interview β€” it calls you, then scores you. First 15 min FREE β†’

MongoDB Β· Intermediate Β· question 21 of 100

Explain the differences between embedded documents and references in MongoDB, and when to use each approach.?

πŸ“• Buy this interview preparation book: 100 MongoDB questions & answers β€” PDF + EPUB for $5

In MongoDB, embedding and referencing are two approaches to model relationships between collections.

Embedding is the practice of nesting one piece of data as a subdocument within another. For instance, consider a database containing collections of orders and products, where each order can contain multiple products. One way to model this would be to embed the product data directly within the order document, like this:

{
  "_id": ObjectId("5f7f6356fc19c6eca1d8c3c7"),
  "order_number": "ORD123",
  "customer_name": "John Doe",
  "products": [
    {
      "product_name": "Product A",
      "quantity": 2,
      "price": 25.99
    },
    {
      "product_name": "Product B",
      "quantity": 1,
      "price": 10.99
    }
  ]
}

Embedding can help with performance, as it eliminates the need for separate queries to retrieve related documents. It also simplifies the data model and can make it easier to work with the data. However, embedding can lead to data duplication and can make it more difficult to update related documents if they are embedded in multiple places.

Referencing, on the other hand, involves storing a reference to another document rather than embedding the entire document. For instance, in the example above, we could instead store the product data in a separate "products" collection and store references to those products in the order document:

{
  "_id": ObjectId("5f7f6356fc19c6eca1d8c3c7"),
  "order_number": "ORD123",
  "customer_name": "John Doe",
  "products": [
    ObjectId("5f7f63a0fc19c6eca1d8c3c8"),
    ObjectId("5f7f63a0fc19c6eca1d8c3c9")
  ]
}

With referencing, we avoid data duplication and can update related documents more easily. However, it requires additional queries to retrieve related data, which can impact performance.

When deciding whether to embed or reference related data in MongoDB, consider the following factors:

1. Data size: If the related data is small and straightforward, embedding may be a good option. However, if the related data is large or complex, referencing is likely a better choice.

2. Access patterns: If you frequently need to access related data along with the main document, embedding may be more efficient. However, if related data is only needed in certain cases, referencing may be more efficient overall.

3. Atomicity: If you need to update related data atomically (i.e. in a single database operation), referencing is the better choice, since updating an embedded document requires rewriting the entire main document.

In summary, embedding and referencing are both valid approaches to modeling relationships in MongoDB. The choice between the two depends on the specific requirements of your application.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic MongoDB interview β€” then scores it.
πŸ“ž Practice MongoDB β€” free 15 min
πŸ“• Buy this interview preparation book: 100 MongoDB questions & answers β€” PDF + EPUB for $5

All 100 MongoDB questions Β· All topics