MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tìm N mục nhập hàng đầu từ Mảng

Về cơ bản, bạn cần sắp xếp các phần tử mảng ( $ unwind / $ sort / $ group ) và sau đó bạn có thể thực hiện $ sort của mình cho các giá trị hàng đầu và $ giới hạn kết quả.

Cuối cùng, bạn $ slice cho "đầu N" trong các tài liệu trong mảng.

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. Django không thể kết nối với tập bản đồ mongoDB

  2. Làm thế nào để bắt đầu một trình bao mongodb trong vùng chứa docker?

  3. Mongoose chỉ mục duy nhất trên subocument

  4. MongoDB:kiểm tra kết nối với DB

  5. Hướng dẫn sử dụng MongoDB cho năm 2022 - Tìm hiểu MongoDB là gì?