$lookup के लिए कोई पोजिशनल ऑपरेटर नहीं है लेकिन आप कस्टम pipeline
. का उपयोग कर सकते हैं MongoDB 3.6 में कस्टम जॉइन को परिभाषित करने के लिए शर्तें
:
db.history.aggregate([
{
$lookup: {
from: "childsgroup",
let: { child_id: "$child_id" },
pipeline: [
{ $match: { $expr: { $in: [ "$$child_id", "$childs.id" ] } } },
{ $unwind: "$childs" },
{ $match: { $expr: { $eq: [ "$childs.id", "$$child_id" ] } } },
{ $replaceRoot: { newRoot: "$childs" } }
],
as: "childInfo"
}
}
])
पहला $match
प्रदर्शन में सुधार के लिए जोड़ा गया:हम childsgroup
. से केवल उन दस्तावेज़ों को खोजना चाहते हैं जिसमें मेल खाने वाले child_id
. हों और फिर हम $unwind
. के बाद उप-दस्तावेजों का मिलान कर सकते हैं मंच।