Lesson 55/100

Tutorials MongoDB Tutorial

$lookup

$lookup: 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 55 of 100

$lookup

Foundations & CRUD ✓Queries & Schema ✓Aggregation & ScaleAtlas & Projects

Aggregation & Scale · 3 — Pipelines · ~10 min · MongoDB — Aggregation Pipelines

What is this?

$lookup performs a left outer join to another collection in the same database. It adds an array field with matching documents from the “foreign” collection.

Why should you care?

Orders reference products; dashboards need product names without manual loops in Node for every row.

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.products.insertOne({ _id: ObjectId("64c000000000000000000001"), name: "Hub", price: 1499 })
db.orders.insertOne({ productId: ObjectId("64c000000000000000000001"), qty: 2 })
db.orders.aggregate([
  { $lookup: {
      from: "products",
      localField: "productId",
      foreignField: "_id",
      as: "productDocs"
  }},
  { $unwind: "$productDocs" },
  { $project: { qty: 1, productName: "$productDocs.name", price: "$productDocs.price" } }
])

Run Example »

Edit the code below and click Run to see the result in Toolliyo’s live editor.

Code
Result

What happened?

  • $lookup pulls matching products into productDocs array.
  • $unwind turns the one-element array into a flat field.
  • $project exposes name and price beside qty.

Practice next

  1. Insert product and order with matching ids.
  2. Run the pipeline.
  3. Index orders.productId and ensure products._id is keyed.
  4. Lookup user profiles onto posts via authorId.
  5. Add a $match before $lookup to limit orders.

Remember

$lookup joins collections. Results land in an array field. Often followed by $unwind.

Order line enrichment

Admin order page shows product titles via $lookup instead of N+1 queries.

Outcome: One round trip renders the order detail.

Interview prep for this lesson

Practice these questions aloud after reading—each links to a full structured answer.

Junior Detailed
Explain SQL queries in the context of MongoDB.
Short answer: Interviewers want a crisp definition, a practical example from your projects, and awareness of trade-offs—not textbook dumps. Explain a bit more How to structure your answer (60–90 seconds) Define SQL queri…
Mid Detailed
What are common mistakes teams make with Schema design when using MongoDB?
Short answer: Interviewers want a crisp definition, a practical example from your projects, and awareness of trade-offs—not textbook dumps. Explain a bit more How to structure your answer (60–90 seconds) Define Schema de…
Senior Detailed
How would you debug a production issue related to Transactions in a MongoDB application?
Short answer: Interviewers want a crisp definition, a practical example from your projects, and awareness of trade-offs—not textbook dumps. Explain a bit more How to structure your answer (60–90 seconds) Define Transacti…
Junior Detailed
Describe a real-world scenario where Normalization mattered in a MongoDB project.
Short answer: Interviewers want a crisp definition, a practical example from your projects, and awareness of trade-offs—not textbook dumps. Explain a bit more How to structure your answer (60–90 seconds) Define Normaliza…
Questions on this lesson 0

Sign in to ask a question or upvote helpful answers.

No questions yet — be the first to ask!

MongoDB Tutorial
Course syllabus

MongoDB Tutorial

MongoDB — Foundations
MongoDB — CRUD Operations
MongoDB — Query Operators
MongoDB — Schema Design
MongoDB — Indexing & Performance
MongoDB — Aggregation Pipelines
MongoDB — Replication & Sharding
MongoDB — Atlas & Security
MongoDB — Modern Features
MongoDB — Real-World Projects
Toolliyo Assistant
Ask about tutorials, ebooks, training, pricing, mentor services, and support. I use public site content only—not admin or internal tools.

care@toolliyo.com

Need callback? Share your details