Druga wersja dodaje wykonanie potoku agregacji dla każdego dokumentu w połączonej kolekcji .
Dokumentacja mówi:
Potok jest wykonywany dla każdego dokumentu w kolekcji, a nie dla każdego dopasowanego dokumentu.
W zależności od tego, jak duża jest kolekcja (zarówno liczba dokumentów, jak i rozmiar dokumentu), może to zająć przyzwoitą ilość czasu.
Ma to sens - wszystkie dodatkowe dokumenty ze względu na usunięcie limitu również muszą mieć wykonany dla nich potok agregacji.
Możliwe, że wykonanie potoku agregacji na dokument nie jest tak zoptymalizowane, jak mogłoby być. Na przykład, jeśli potok jest konfigurowany i wyłączany dla każdego dokumentu, z tym może być więcej narzutu. niż w warunkach $match.
Wykonywanie potoku agregacji na połączony dokument zapewnia dodatkową elastyczność. Jeśli potrzebujesz tej elastyczności, sensowne może być wykonanie potoku, chociaż wydajność należy wziąć pod uwagę niezależnie od tego. Jeśli nie, rozsądnie jest zastosować bardziej wydajne podejście.