कुछ अनुमान:-
1. मान लें कि 300 रिकॉर्ड हैं जो स्थान के आधार पर मेल खाते हैं।
2. मान लें कि 100 परिणामों के पहले सेट में टैग पिज़्ज़ा नहीं है। बाकी 200 दस्तावेज़ों (101 से 300) में टैग पिज़्ज़ा है
प्रश्न 1:-
- 2 पाइपलाइन संचालन $geoNear और $match . हैं
- $geoNear पाइपलाइन ऑपरेशन का आउटपुट $matchpipeline ऑपरेशन का इनपुट है
- $geoNear निकटतम से दूर की दूरी के आधार पर स्थान के आधार पर अधिकतम 100 परिणाम (सीमा हमने निर्दिष्ट की है) पाता है। (यहां ध्यान दें कि लौटाए गए 100 परिणाम पूरी तरह से स्थान पर आधारित हैं। इसलिए इन 100 परिणामों में "पिज्जा" टैग वाला कोई दस्तावेज़ नहीं है)
- इन 100 परिणामों को अगले पाइपलाइन ऑपरेशन $match पर भेजा जाता है जहां से फ़िल्टरिंग होती है। लेकिन चूंकि 100 परिणामों के पहले सेट में टैग पिज़्ज़ा नहीं था, इसलिए आउटपुट खाली है
प्रश्न 2:-
- केवल 1 पाइपलाइन ऑपरेशन है $geoNear
- $geoNear पाइपलाइन ऑपरेशन में एक क्वेरी फ़ील्ड शामिल है$geoNear निकटतम से दूर दूरी और क्वेरीटैग=पिज्जा द्वारा क्रमबद्ध स्थान के आधार पर अधिकतम 100 परिणाम (सीमा हमने निर्दिष्ट की है) ढूंढता है
- अब यहां 101 से 200 तक के परिणाम आउटपुट के रूप में लौटाए जाते हैं क्योंकि क्वेरी को पाइपलाइन ऑपरेशन $geoNear में शामिल किया गया है। इतना आसान वाक्य हम कहते हैं, स्थान के साथ सभी दस्तावेज़ खोजें [x,y] withtag=pizza.
पुनश्च:- $group पाइपलाइन चरण केवल गिनती प्राप्त करने के लिए जोड़ा गया है और इसलिए इसके बारे में व्याख्या में नहीं लिखा है