Voer geneste zoekopdrachten uit met opzoeken met pijplijn ,
$lookup
metorders
collectie,let
, definieer variabelecustomer_id
dat is uit de hoofdverzameling, om toegang te krijgen tot deze referentievariabele in de pijplijn met behulp van$$
zoals$$customer_id
,pipeline
kan pijplijnfasen toevoegen op dezelfde manier als we doen in pijplijn op rootniveau$expr
telkens wanneer we interne velden matchen, is de voorwaarde voor het overeenkomen van expressies vereist, dus$$customer_id
is het bovenliggende verzamelveld dat is gedeclareerd inlet
en$customer_id
is het veld van de onderliggende collectie/huidige collectie
$lookup
metorderitems
collectie
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"
}
}
])