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

Монго агрегиране

Ако приемем, че имате инсталирана най-новата версия на mongodb, един от начините да го направите е:

  • Sort записите въз основа на published_date в низходящ ред.
  • group записите въз основа на тяхната category . За всяка група съберете всички записи заедно в масив.
  • В кода от страна на javascript/клиента, slice първите 5 записа от всяка група (категория).

$slice не е наличен в $project от страната на сървъра оператор на тръбопровод за агрегиране, който ни пречи да извършим операцията от страната на сървъра.

var result = db.collection.aggregate(
[
{$sort:{"published_date":-1}},
{$group:{"_id":"$category","values":{$push:"$$ROOT"}}}
]
).map(function(doc){
return {"category":doc._id,"records":doc.values.slice(0,5)};
});

result променливата вече ще бъде масив от документи. Всеки документ, представляващ всяка category и на свой ред да има масив от горните 5 записи.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Regex, индекс и производителност

  2. Ред на отговорите на MongoDB $in заявка?

  3. MongoDB findOne()

  4. Актуализирайте множество поддокументи без точно условие на ниво поддокумент

  5. Индексиране на мангуста в производствения код