sql >> Databasteknik >  >> NoSQL >> MongoDB

Hitta topp N poster från Arrayen

I grund och botten behöver du sortera arrayelementen ($unwind /$sort /$group ) och sedan kan du göra din $sort för toppvärdena och $limit resultaten.

Äntligen $slice för det "översta N" i dokumenten i arrayen.

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. Hur hittar man oanvända index i MongoDB?

  2. Mongodb Aggregation Group av logiska eller?

  3. node.js express mongodb spara meddelanden?

  4. Spring Boot med session/Redis Serialiseringsfel med dåliga Active Directory Ldap-uppgifter