Málo předpokladů:-
1. Předpokládejme, že existuje 300 záznamů, které se shodují na základě umístění.
2. Předpokládejme, že první sada 100 výsledků nemá značku pizzy. Zbývajících 200 dokumentů (101 až 300) má tag pizza
Dotaz 1:-
- Existují 2 potrubní operace $geoNear a $match
- Výstup operace potrubí $geoNear je vstupem operace $matchpipeline
- $geoNear najde maximálně 100 výsledků (limit, který jsme určili) na základě umístění seřazeného podle vzdálenosti od nejbližší po vzdálenou. (Všimněte si, že 100 vrácených výsledků je čistě založeno na umístění. Těchto 100 výsledků tedy neobsahuje žádný dokument s tagem "pizza")
- Těchto 100 výsledků je odesláno do další operace kanálu $match, odkud dochází k filtrování. Ale protože první sada 100 výsledků neobsahovala značku pizza, je výstup prázdný
Dotaz 2:-
- Existuje pouze 1 potrubní operace $geoNear
- V operaci potrubí $geoNear je zahrnuto pole dotazu$geoNear najde maximálně 100 výsledků (limit, který jsme určili) na základě umístění seřazeného podle vzdálenosti od nejbližší po vzdálenou a podle querytag=pizza
- Nyní jsou výsledky od 101 do 200 vráceny jako výstup, protože dotaz je zahrnut do operace kanálu $geoNear. Řekneme tedy jednoduchou větu, najděte všechny dokumenty s umístěním [x,y] withtag=pizza.
P.S:- $group pipeline fáze je přidána pouze pro získání počtu, a proto jsme o ní nepsali ve vysvětlení