का उपयोग करके नेस्टेड लुकअप करें पाइपलाइन के साथ लुकअप ,
$lookup
orders
के साथ संग्रह,let
, चर परिभाषित करेंcustomer_id
यह मुख्य संग्रह से है,$$
. का उपयोग करके पाइपलाइन के अंदर इस संदर्भ चर का उपयोग करने के लिए जैसे$$customer_id
,pipeline
पाइपलाइन चरणों को उसी तरह जोड़ सकते हैं जैसे हम रूट स्तर पाइपलाइन में करते हैं$expr
जब भी हम आंतरिक क्षेत्रों से मेल खाते हैं तो इसके लिए अभिव्यक्ति मिलान की स्थिति की आवश्यकता होती है, इसलिए$$customer_id
मूल संग्रह फ़ील्ड है जिसेlet
. में घोषित किया गया है और$customer_id
बाल संग्रह/वर्तमान संग्रह का क्षेत्र है
$lookup
orderitems
. के साथ संग्रह
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"
}
}
])