MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose Aggregate :ogranicz liczbę rekordów w $grupie

Możesz użyć $first pobierać wartości z pierwszego dokumentu w każdej grupie posortowanego potoku:

var allids = ['xxxxx','yyyy'];
Game.aggregate([
    {$match: {'oid': {$in:allids}}},
    {$sort: {'number_plays': -1}},
    {$group: {
        _id: '$oid', 
        game_name: {$first: "$game_name"}, 
        game_id: {$first: "$game_id"}, 
        number_plays: {$first:"$number_plays"}
    }}
], function(err,list){
    console.log(list);
    res.end();
});

Ponieważ sortowałeś według number_plays malejąco w poprzednim etapie potoku, to pobierze wartości z każdego oid dokument grupy z najwyższą liczbą number_plays .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak obliczyć różnicę znaczników czasu w mongodb (w godzinach)?

  2. Jak zmienić hasło użytkownika MongoDB?

  3. Wpływ na wydajność indeksu typu danych w MongoDB?

  4. Wyszukiwanie Mongoose / mongoDb, gdzie potrzebuję wartości niewypełnionej właściwości

  5. Jak zaktualizować element z tablicy zagnieżdżonej w tablicy?