How can I simulate an SQL JOIN in MongoDB?

How can I retrieve feedback records with postRef=444 and merge the matching account details from another collection in a single query?

db.feedback.aggregate([
  { $match: { postRef: 444 } },
  { $lookup: { from: 'accounts', localField: 'userId', foreignField: 'accountId', as: 'accountInfo' } }
]);

hey, i’m diggin the use of $lookup. sometimes i throw in a $project after join to flatten data. have you experimnted with extra stages? what led u to want everything in one query, anyway?

In my experience, using the $lookup stage in an aggregation pipeline offers a flexible way to mimic an SQL JOIN in MongoDB. I encountered this requirement when needing to merge order details with customer information in a single query. Enhancing the pipeline with stages like $project and $unwind allowed me to shape the output exactly as desired. Despite its differences from SQL joins, careful design of the pipeline can yield both performance efficiency and clean, integrated results.

i tried a similar approach, adding a $unwind after $lookup to help flatten the data. also rough filtering improved query speed. might be worth checkng index optimizations too.

hey folks, im curious if anyone tried using conditional filters inside $lookup’s pipeline? it might slim down the data more effectively. has this method proven useful compared to a followup $match? would love to hear yall’s experiences.