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

Làm cách nào để chỉ truy vấn các tài liệu có dấu thời gian mới nhất từ ​​một nhóm?

Bạn đang trộn một vài phương pháp ở đây khi bạn có thể làm mọi thứ trong đường dẫn tổng hợp. Nếu không, vấn đề chỉ là làm cho các bước của bạn theo đúng thứ tự:

db.collection.aggregate([
    {$sort: { createdOn: -1 }},
    {$group: { _id: "$itemId", 
        createdOn: {$first: "$createdOn"},
        field1: {$first: "$field1" },
        field2: {$first: "$field2" }
    }},
    {$match: { field1: "foo" }}
])

Vì vậy, hãy sắp xếp trước cho các tài liệu mới nhất. Nhóm trên itemId (đơn đặt hàng sẽ được duy trì cho $ đầu tiên), và sau đó lọc với $ khớp nếu bạn phải. Nhưng các tài liệu được nhóm của bạn sẽ là những tài liệu mới nhất.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Kéo khóa hoàn chỉnh:Cặp mảng

  2. Trình điều khiển C # mongodb 2.0 - Làm thế nào để nâng cấp trong một hoạt động hàng loạt?

  3. mongoose điền trường mà không có tùy chọn ref

  4. Cách hoạt động của Toán tử cập nhật $ set trong MongoDB

  5. Triển khai MongoDB bằng Docker