sql >> Databáze >  >> NoSQL >> MongoDB

Hledání prvních N záznamů z pole

V zásadě musíte seřadit prvky pole ($unwind /$sort /$group ) a poté můžete provést svůj $sort pro nejvyšší hodnoty a $limit výsledky.

Nakonec $slice pro "top N" v dokumentech v poli.

db.eplat1.aggregate([
  { "$unwind": "$Trips" },
  { "$sort": { "_id": 1, "Tips.TripCount": -1 } },
  { "$group": {
    "_id": "$_id",
    "Trips": { "$push": "$Trips" },
    "maxTrip": { "$max": "$Trips.TripCount" }
  }},
  { "$sort": { "maxTrip": -1 } },
  { "$limit": 50 },
  { "$addFields": { "Trips": { "$slice": [ "$Trips", 0 , 2 ] } } }
])



  1. aktualizovat sloupec kolekce v mongodb

  2. Redis a Memcache nebo jen Redis?

  3. Jak nainstalovat dřívější verzi mongodb s homebrew?

  4. Můžete se připojit k Amazon ElastiСache Redis mimo Amazon?