如何根据时间戳在cloudant NOSQL数据库中排列数据

时间:2017-02-15 11:52:35

标签: database cloudant nosql

我已经使用raspberry pi将nodered连接到Watson iot平台,现在Watson扩展到Cloudant NOSQL数据库,数据以随机方式排列。当我从外部应用程序发送getrequest时数据是随机的,我如何按顺序获取数据根据时间戳?

1 个答案:

答案 0 :(得分:1)

假设您的文档包含带有时间戳值的字段,您可以创建一个视图并对其进行查询(https://console.ng.bluemix.net/docs/services/Cloudant/api/creating_views.html#views-mapreduce-)。

CouchDB / Cloudant返回按视图定义中定义的键排序的视图结果。举个简单的例子,假设所有文档都包含一个名为date_sent的字段,表示时间戳值:

{
    ...
    "date_sent": "2017-02-09T21:37:20.731Z",
    ...
}
  • 创建视图(根据需要替换占位符$...

    PUT https://$USERNAME:$PASSWORD@$USERNAME.cloudant.com/$DATABASE/_design/$DD_NAME HTTP/1.1
    
    {
     "views" : {
       "docs_sorted_by_date" : {
        "map" : "function(doc) { emit(doc.date_sent,1);  }"
       }
     }
    }
    
  • 查询视图

    GET https://$USERNAME:$PASSWORD@$USERNAME.cloudant.com/$DATABASE/_design/$DD_NAME/_view/docs_sorted_by_date HTTP/1.1