Jag fick ett giltigt och användbart svar från Google-grupper. Vill dela med er alla.
Begränsningen gäller inte antalet dokument:begränsningen gäller mängden minne som används av slutresultatet (eller ett mellanresultat).
Så:om du samlar ihop 200 000 dokument men resultatet passar in i resultatet på 16 MB, så är du bra. Om du sammanställer 100 dokument och resultatet inte ryms i 16 MB, får du ett felmeddelande.
På samma sätt, om du gör en sort() eller en group() på ett mellanresultat, och den operationen kräver mer än 10 % av tillgängligt RAM-minne, får du ett felmeddelande. Detta är bara löst relaterat till hur många dokument du har:det är en funktion av hur stort det specifika steget i pipelinen är.
Gränsen på 16 MB är inte justerbar. Detta är den maximala storleken på ett dokument i MongoDB. Eftersom aggregeringsramverket för närvarande implementeras som ett kommando, måste resultatet från aggregeringen returneras i ett enda dokument:därav gränsen på 16 MB.
se denna inlägg