MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose zapytanie o dokumenty z ostatnich 24 godzin, tylko jeden dokument na godzinę

Użyj agregacji

to świetny artykuł aby dowiedzieć się, jak pogrupować dokumenty, a następnie wybierz jeden element na dokument.

Musisz także filtrować dokumenty z ostatnich 24 godzin, a następnie projektować pod kątem wyszukiwania i hour od sygnatury czasowej.

Twoje zapytanie będzie mniej więcej takie

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. dane wiosenne mongodb mapujące dynamiczne pole

  2. PouchDB/CouchDB jak alternatywa dla MongoDB

  3. Nie można połączyć się z mongodb errno:61 Połączenie odrzucone

  4. Jak pobrać dane z MongoDB?

  5. Połącz się z bazą danych MongoDB za pomocą mangusty za serwerem proxy