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

Mongodb chọn tất cả các trường nhóm theo một trường và sắp xếp theo trường khác

Những gì bạn muốn là một cái gì đó có thể đạt được với khuôn khổ tổng hợp. Dạng cơ bản của (hữu ích cho người khác) là:

db.collection.aggregate([

    // Group by the grouping key, but keep the valid values
    { "$group": {
        "_id": "$chainId",
        "docId": { "$first": "$_id" },
        "messageId": { "$first": "$messageId" },
        "createOn": { "$first": "$createdOn" }
    }},

    // Then sort
    { "$sort": { "createOn": -1 } }

])

Vì vậy, "nhóm" trên các giá trị riêng biệt của "messageId" trong khi lấy $ đầu tiên giá trị ranh giới cho từng trường khác. Hoặc nếu bạn muốn lớn nhất thì hãy sử dụng $ cuối cùng thay vào đó, nhưng đối với nhỏ nhất hoặc lớn nhất theo hàng, nó có thể hợp lý với $ sort trước tiên, nếu không, chỉ cần sử dụng $ tối thiểu $ max nếu toàn bộ hàng không quan trọng.

Xem MongoDB tổng hợp () tài liệu để biết thêm thông tin về cách sử dụng, cũng như tài liệu trình điều khiển JavaDocs và trình kết nối SpringData Mongo để biết thêm cách sử dụng phương pháp tổng hợp và các trình trợ giúp có thể có.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhân trường với giá trị trong Mongodb

  2. Mongodb Cxx Driver Test gặp sự cố trong phiên bản Build [Hoạt động tốt khi gỡ lỗi]

  3. Danh sách các câu hỏi về PHP Mongo:_construct trả về điều gì khi bản sao là true?

  4. Truy vấn danh sách có trong danh sách khác trong mongodb

  5. Bộ giải mã UUID chuẩn của Spring Boot không hoạt động với AbstractMongoClientConfiguration