Gör kapslade sökningar med slå upp med pipeline ,
$lookupmedorderssamling,let, definiera variabelncustomer_iddet är från huvudsamlingen, för att komma åt denna referensvariabel i pipeline med$$som$$customer_id,pipelinekan lägga till pipelinesteg på samma sätt som vi gör i pipeline på rotnivå$exprnär vi matchar interna fält kräver det uttrycksmatchningsvillkor, så$$customer_idär föräldrasamlingsfält som deklareras iletoch$customer_idär barnsamlingens/aktuella samlingens fält
$lookupmedorderitemssamling
db.customers.aggregate([
{
$lookup: {
from: "orders",
let: { customer_id: "$customer_id" },
pipeline: [
{ $match: { $expr: { $eq: ["$$customer_id", "$customer_id"] } } },
{
$lookup: {
from: "orderitems",
localField: "order_id",
foreignField: "order_id",
as: "items"
}
}
],
as: "orders"
}
}
])