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

MongoDB Aggregate - Truy vấn để lấy mục gần đây nhất trong nhóm

Bạn có thể sử dụng $ last $ đầu tiên các toán tử. Lưu ý rằng bạn nên sắp xếp tài liệu trước khi nhóm:

db.so.aggregate([
 { $sort: {productID:-1, date: -1} },
 { 
     $group: {
         _id : "$productID",
         date: {$last: "$date" },
         amount: {$first: "$amount" },
         id : {$first: "$_id"}
     }
 },
 { $project: { _id: "$id", productId: "$_id", date: 1, amount: 1 } }
])

Đầu ra:

{
    "_id" : 5,
    "productId" : 1,
    "date" : ISODate("2017-02-01T00:00:00.000Z"),
    "amount" : 11
},
{
    "_id" : 7,
    "productId" : 2,
    "date" : ISODate("2017-02-01T00:00:00.000Z"),
    "amount" : 222
},
{
    "_id" : 8,
    "productId" : 3,
    "date" : ISODate("2017-02-01T00:00:00.000Z"),
    "amount" : 33
},
{
    "_id" : 4,
    "productId" : 4,
    "date" : ISODate("2017-02-01T00:00:00.000Z"),
    "amount" : 4
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bạn có thể có mongo $ push prepend thay vì append không?

  2. Làm thế nào để tạo một cái gì đó như trường ảo &mã cứng một giá trị trong dự án tổng hợp mongodb $?

  3. Trường mảng đảo ngược trong MongoDB

  4. mongoDB:$ inc của một tài liệu không tồn tại trong một mảng

  5. Xử lý lỗi xác thực Mongoose - ở đâu và như thế nào?