2017-03-15 1 views
0

Je travaille sur la base de données CloudSoft NoSQL, les données sont reçues toutes les 15 secondes, donc toutes les 5 minutes, il y aura 20 documents dans la base de données.Interrogation de la base de données NoSQL Cloud par rapport aux intervalles de temps

J'ai besoin d'obtenir des documents qui ont une différence dans l'horodatage de cinq minutes par exemple, le document avec horodatage: "2017-03-14 T 18:21:58" et document avec horodatage: "2017-03-14 T 18:26:58" et ainsi de suite ...

Exemple de document:

enter image description here

Répondre

2

Faire une vue saisie sur l'horodatage. J'interprète votre question comme «obtenir que les 20 documents partagent un horodatage particulier». Si tel est le cas, vous pouvez sortir sans l'analyse syntaxique de l'horodatage:

function(doc) { 
    if (doc && doc.timestamp) { 
     emit(doc.timestamp, 1) 
    } 
} 

Vous pouvez maintenant interroger la vue:

% curl 'https://USER:[email protected]/DATABASE/_design/DDOC/view/VIEWNAME?key=TIMESTAMP&include_docs=true&limit=20' 

Remplacez les bits majuscules aux noms et paramètres pertinents pour votre système.

Si vous avez besoin granularité plus fine pour votre requête (style de séries chronologiques), il y a une vieille mais utile blog à partir de l'un des fondateurs Cloudant sur le sujet ici: https://cloudant.com/blog/mapreduce-from-the-basics-to-the-actually-useful/