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

MongoDB - nhận tài liệu có thuộc tính tối đa cho mỗi nhóm trong một bộ sưu tập

Tổng hợp MongoDB cung cấp $max nhưng trong trường hợp của bạn, bạn muốn bản ghi "toàn bộ" như nó vốn có. Vì vậy, điều thích hợp cần làm ở đây là $sort và sau đó sử dụng $first toán tử trong $group tuyên bố:

db.collection.aggregate([
    { "$sort": { "session": 1, "age": -1 } },
    { "$group": {
        "_id": "$session",
        "age": { "$first": "$age" },
        "firstName": { "$first" "$firstName" },
        "lastName": { "$first": "$lastName" }
    }}
])

Vì vậy, "sắp xếp" sẽ đúng thứ tự và "phân nhóm" chọn lần xuất hiện đầu tiên trong khóa "nhóm" nơi các trường đó tồn tại.

Chủ yếu là $first ở đây vì $sort được thực hiện theo thứ tự ngược lại. Bạn cũng có thể sử dụng $last khi theo thứ tự tăng dần.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách sử dụng Spring Boot với MongoDB

  2. Mongoose Query để lọc một mảng và điền nội dung liên quan

  3. Cách cài đặt MongoDB

  4. Dump Bộ sưu tập Mongo sang định dạng JSON

  5. Nhiều tham chiếu lược đồ trong một mảng giản đồ - mongoose