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

Намиране на първите N записа от масива

По принцип трябва да сортирате елементите на масива ($unwind /$sort /$group ) и след това можете да направите своя $sort за най-високите стойности и $limit резултатите.

Най-накрая $slice за "горното N" в документите в масива.

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как мога да използвам not like на laravel mongodb?

  2. В MongoDB как мога да сортирам документи въз основа на свойство във вграден обект?

  3. Не е намерен десериализатор на Json за тип Option[reactivemongo.bson.BSONObjectID]

  4. Геопространствен индекс за вътрешна структура

  5. Mongodb добавя ново поле в съществуващ документ с конкретна позиция