MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Да върне ли ограничен брой записи от определен тип, но неограничен брой други записи?

Не мисля, че това в момента (2.6) е възможно да се направи с един конвейер за агрегиране. Трудно е да се даде точен аргумент защо не, но основно конвейерът за агрегиране извършва трансформации на потоци от документи, един документ в даден момент. В рамките на тръбопровода няма осведоменост за състоянието на самия поток, което ще ви е необходимо, за да определите, че сте достигнали лимита за A, B и т.н. и трябва да изхвърлите допълнителни документи от същия тип. $group обединява множество документи заедно и позволява стойностите на техните полета в съвкупност да повлияят на получения групов документ ($sum , $avg и др.). Може би това има някакъв смисъл, но непременно не е строго, защото има прости операции, които можете да добавите, за да направите възможно ограничаването въз основа на типовете, например добавяне на $push x акумулатор към $group което избутва стойността само ако масивът, към който се избутва, има по-малко от x елементи.

Дори и да имах начин да го направя, бих препоръчал просто да направя две агрегации. Бъдете прости.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 2 начина за разкриване на индекс в MongoDB

  2. В mongoDb, как премахвате елемент от масива по неговия индекс?

  3. Как внедрявате автоматично увеличаващ се първичен идентификатор в MongoDB?

  4. Ефективност на групово вмъкване в MongoDB за големи колекции

  5. Контролен списък за сигурност за производствени внедрявания на MongoDB