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

Zapytanie, aby uzyskać dane z ostatnich X minut za pomocą Mongodb

W części 18-minutowej tak naprawdę nie chodzi o MongoDB, ale o JavaScript i to, co jest dostępne w powłoce Mongo:

query = {
    timestamp: { // 18 minutes ago (from now)
        $gt: new Date(ISODate().getTime() - 1000 * 60 * 18)
    }
}

Działa w powłoce mongo, ale używanie sterowników Mongo dla innych języków byłoby zupełnie inne.

Aby „wyświetlić” mniejszy schemat z wartościami i znacznikami czasu:

projection = {
    _id: 0,
    value: 1,
    timestamp: 1,
}

Stosując oba:

db.mycol.find(query, projection).sort({timestamp: 1});

Cóż, to nadal nie jest „zestaw”, ponieważ mogą istnieć duplikaty. Aby się ich pozbyć, możesz użyć $group z platformy agregacji:

db.mycol.aggregate([
    {$match: query},
    {$group: {
        _id: {
            value: "$value",
            timestamp: "$timestamp",
        }
    }},
    {$project: {
        value: "$_id.value",
        timestamp: "$_id.timestamp",
    }},
    {$sort: {timestamp: 1}},
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak wymusić klucze obce w bazach NoSql (MongoDB)?

  2. Przesyłaj strumieniowo z kursora mongodb do odpowiedzi Express w node.js

  3. Jak uzyskać dzień, miesiąc i rok z daty w SQL?

  4. Pobieranie kodu HTML z MongoDB do użycia w szablonie

  5. Ręczne dostarczanie argumentów do zapytania MongoDB w celu obsługi funkcji sortowania (dla indeksu nieuwzględniającego wielkości liter)