Proveďte vnořené vyhledávání pomocí vyhledávání pomocí potrubí ,
$lookupsorderskolekce,let, definujte proměnnoucustomer_idto je z hlavní kolekce, pro přístup k této referenční proměnné uvnitř potrubí pomocí$$jako$$customer_id,pipelinemůžete přidat fáze potrubí stejně jako my v kořenovém potrubí$exprkdykoli porovnáváme interní pole, vyžaduje podmínku shody výrazu, takže$$customer_idje nadřazené pole kolekce, které je deklarováno vleta$customer_idje pole podřízené kolekce/aktuální kolekce
$lookupsorderitemskolekce
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"
}
}
])