2017-03-15 1 views
0

Ich arbeite an Cloudant NoSQL-Datenbank, die Daten werden alle 15 Sekunden empfangen, so dass alle 5 Minuten 20 Dokumente in der Datenbank sind.Abfrage Cloudant NoSQL-Datenbank in Bezug auf Zeitintervalle

Ich brauche Dokumente zu erhalten, die einen Unterschied in dem Zeitstempel von 5 Minuten zum Beispiel Dokument mit Zeitstempel hat: "2017-03-14 T 18:21:58" und Dokument mit Zeitstempel: "2017-03-14 T 18:26:58" und so weiter ...

Beispieldokument:

enter image description here

Antwort

2

Eine Sicht auf den Zeitstempel vornehmen. Ich interpretiere deine Frage wie "alle 20 Dokumente erhalten, die einen bestimmten Zeitstempel teilen". Wenn das der Fall ist können Sie weg mit nicht den Zeitstempel-Analyse:

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

Sie können nun fragen Sie die Ansicht:

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

Substitute die Groß Bits auf den entsprechenden Namen und Parameter für Ihr System.

Wenn Sie feinere Granularität für Ihre Abfrage (Zeitreihen-Stil) benötigen, gibt es einen alten, aber nützlichen Blog von einem des Cloudant Gründer zum Thema hier: https://cloudant.com/blog/mapreduce-from-the-basics-to-the-actually-useful/