sql >> Database >  >> NoSQL >> MongoDB

Beperkt aantal records van een bepaald type retourneren, maar onbeperkt aantal andere records?

Ik denk niet dat dit momenteel (2.6) mogelijk is met één aggregatiepijplijn. Het is moeilijk om een ​​precies argument te geven waarom niet, maar in feite voert de aggregatiepijplijn transformaties uit van documentstromen, document voor document. Er is geen bewustzijn binnen de pijplijn van de staat van de stream zelf, en dat is wat je nodig hebt om te bepalen dat je de limiet voor A's, B's, enz. hebt bereikt en verdere documenten van hetzelfde type moet laten vallen. $group brengt meerdere documenten samen en laat hun veldwaarden in totaal invloed hebben op het resulterende groepsdocument ($sum , $avg , enzovoort.). Misschien is dit logisch, maar het is noodzakelijkerwijs niet rigoureus omdat er eenvoudige bewerkingen zijn die u zou kunnen toevoegen om het mogelijk te maken om te beperken op basis van de typen, bijvoorbeeld het toevoegen van een $push x accumulator naar $group die de waarde alleen pusht als de array waarnaar wordt gepusht minder dan x elementen heeft.

Zelfs als ik een manier had om het te doen, zou ik aanraden om gewoon twee aggregaties te doen. Houd het simpel.



  1. Bij het starten van flower krijg ik het volgende:dbm.error:db type is dbm.gnu, maar de module is niet beschikbaar

  2. Importeer meer dan 1 json-bestand met mongoimport

  3. Procedure:bibliotheken van derden opnemen in uw MapReduce-taak

  4. Hoe MongoDB op Heroku . te implementeren