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

Nhóm các tài liệu Mongo theo id và nhận tài liệu mới nhất theo dấu thời gian

Nếu bạn đang thực hiện và tổng hợp, bạn cần thực hiện tương tự như SQL, có nghĩa là chỉ định hoạt động tổng hợp cho mỗi cột, tùy chọn duy nhất bạn có là sử dụng $$ROOT nhà điều hành

db.test.aggregate(
   [
    { $sort: { timestamp: 1 } },
     {
       $group:
         {
           _id: "$fooId",
           timestamp: { $last: "$$ROOT" }
         }
     }
   ]
);

Nhưng điều đó sẽ thay đổi kết quả một chút

{ "_id" : "1", "timestamp" : { "_id" : ObjectId("570e6be3e81c8b195818e7fa"), 
  "fooId" : "1", "status" : "A", "timestamp" :ISODate("2016-01-01T00:00:00Z"), 
  "otherInfo" : "BAR" } }

Nếu bạn muốn trả lại định dạng tài liệu ban đầu, bạn có thể cần một giai đoạn $ project sau đó



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bộ sưu tập Mongodb dưới dạng động

  2. Làm cách nào để ngăn MongoDB trả về ID đối tượng khi tìm tài liệu?

  3. MongoDB:không thể sử dụng con trỏ để lặp qua tất cả dữ liệu

  4. Chèn vào MongoDB qua Node.js

  5. MongoDB:không thể nâng cấp nếu đối tượng truy vấn và đối tượng cập nhật chứa cùng một thuộc tính, 'Không thể áp dụng công cụ sửa đổi $ addToSet cho không phải mảng'