Enkele aannames:-
1. Stel dat er 300 records zijn die overeenkomen op basis van de locatie.
2. Stel dat de eerste set van 100 resultaten geen tag pizza heeft. De overige 200 documenten (101 tot 300) hebben de tag pizza
Vraag 1:-
- Er zijn 2 pijplijnoperaties $geoNear en $match
- De uitvoer van $geoNear-pijplijnbewerking is de invoer voor $matchpipeline-bewerking
- $geoNear vindt maximaal 100 resultaten (limiet die we hebben opgegeven) op basis van de locatie gesorteerd op dichtstbijzijnde tot verre afstand. (Houd er rekening mee dat de 100 resultaten die zijn opgehaald puur gebaseerd zijn op de locatie. Deze 100 resultaten bevatten dus geen enkel document met de tag "pizza")
- Deze 100 resultaten worden verzonden naar de volgende pijplijnbewerking $match van waaruit de filtering plaatsvindt. Maar aangezien de eerste set van 100 resultaten geen tag pizza had, is de uitvoer leeg
Vraag 2:-
- Er is slechts 1 pijplijnoperatie $geoNear
- Er is een zoekveld opgenomen in de $geoNear-pijplijnbewerking $geoNear vindt maximaal 100 resultaten (limiet die we hebben gespecificeerd) op basis van de locatie gesorteerd op dichtstbijzijnde tot verre afstand en de querytag=pizza
- Hier worden nu de resultaten van 101 tot 200 geretourneerd als uitvoer, aangezien de query is opgenomen in de pijplijnbewerking $geoNear. Dus een simpele zin die we zeggen, vind alle documenten met locatie [x,y] withtag=pizza.
PS:- De $group-pijplijnfase is alleen toegevoegd om de telling te krijgen en heeft er daarom niet over geschreven in de uitleg