MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Заявка за получаване на данни за последните X минути с Mongodb

За частта от 18 минути, това всъщност не е за MongoDB, а за JavaScript и това, което е налично в mongo shell:

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

Работи в mongo shell, но използването на драйвери на Mongo за други езици би било наистина различно.

За да „проектирате“ върху по-малка схема със стойности и времеви печати:

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

Прилагане и на двете:

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

Е, това все още не е "набор", тъй като може да има дубликати. За да се отървете от тях, можете да използвате $group от рамката за агрегиране:

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. В MongoDB mapreduce, как мога да изгладя обекта със стойности?

  2. Намерете дали някой е имал рожден ден през следващите 30 дни с mongo

  3. Инсталиране на MongoDB на CentOS 8

  4. Как да анализирате използването на диск от Docker контейнер

  5. Как да създавате, показвате и пускате колекции в MongoDB