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

Mongoose truy vấn cho các tài liệu từ 24 giờ trước, chỉ một tài liệu mỗi giờ

Sử dụng tổng hợp

đây là một bài viết tuyệt vời để biết cách nhóm các tài liệu của bạn, sau đó chọn một mục trên mỗi tài liệu.

Bạn cũng cần lọc tài liệu trong 24 giờ qua, sau đó chiếu để tìm và hour từ dấu thời gian.

Truy vấn của bạn sẽ giống như thế này

collection.aggregate([
  {
    "$filter": {
      "createdAt": { $gt: new Date(Date.now() - 24*60*60 * 1000) }
    }
  },
  {
    "$project": {
      "h": {"$hour" : "$createdAt"},
      "original_doc": "$$ROOT"
    }
  },
  {
    "$group": {
      "_id": { "hour": "$h" },
      "docs": { $push: "$original_doc" } 
    }
  },
  { 
    $replaceRoot: {
      newRoot: { $arrayElemAt: ["$docs", 0] }
    }
  }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tạo tệp trong GridFs (MongoDb)

  2. Ký hiệu dấu chấm so với $ elemMatch

  3. Cách cập nhật phần tử mảng cụ thể trong MongoDB

  4. Cách dừng chèn các tài liệu trùng lặp trong bộ sưu tập mongodb

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