sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongo Aggregation

Förutsatt att du har den senaste versionen av mongodb installerad, är ett sätt att göra det:

  • Sort posterna baserat på published_date i fallande ordning.
  • group posterna baserat på deras category . För varje grupp, samla alla poster i en array.
  • I javascript-/klientsidans kod, slice de 5 bästa posterna för varje grupp(kategori).

$slice är inte tillgänglig på serversidan $project aggregeringspipeline-operatör, som hindrar oss från att utföra operationen på serversidan.

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 variabel kommer nu att vara en uppsättning dokument. Varje dokument representerar varje category och har i sin tur en array med topp 5 rekord.



  1. Returnera utbud av dokument kring ID i MongoDB

  2. En introduktion till Percona Server för MongoDB 4.2

  3. Vad är syntaxen för Dates i MongoDB som körs på MongoLab?

  4. Stemming fungerar inte korrekt för MongoDB textindex