MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Permintaan luwak untuk dokumen dari 24 jam terakhir, hanya satu dokumen per jam

Gunakan agregasi

ini artikel yang bagus untuk cara mengelompokkan dokumen Anda lalu pilih satu item per dokumen.

Anda juga perlu memfilter dokumen selama 24 jam terakhir, lalu memproyeksikan untuk menemukan dan hour dari stempel waktu.

Permintaan Anda akan seperti ini

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. Mongoose mengisi kembali array kosong

  2. Memperbarui array di MongoDB menggunakan driver Java

  3. Konversi ObjectID ke String di agregasi mongo

  4. Bagaimana cara mendapatkan id objek di PyMongo setelah dimasukkan?

  5. mongodb:bagaimana saya bisa melihat waktu eksekusi untuk perintah agregat?