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

Znajdowanie pierwszych N wpisów z tablicy

Zasadniczo musisz posortować elementy tablicy ($unwind /$sort /$group ), a następnie możesz wykonać $sort dla najwyższych wartości i $limit wyniki.

Wreszcie $slice dla "górnego N" w dokumentach w tablicy.

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. Jak używać operatorów agregacji w $match w MongoDB (na przykład $rok lub $dayOfMonth)?

  2. Czy możesz użyć mongo $push prepend zamiast append?

  3. usuń _id z wyniku mongodb java

  4. Błąd potwierdzenia:1 ==0 dla polecenia MongoDB deleteOne

  5. Jak zawinąć wyniki wielu odpowiedzi axios.get w jedną tablicę?