映射组合键排序

时间:2012-05-17 12:15:03

标签: couchdb

我尝试从couchdb显示应用程序的日志条目 - 每个日志条目包含时间戳,日志标记和客户端的远程IP,我的地图功能是:

{
"_id": "_design/log",
"language": "javascript",
   "views": {
       "browse": {
           "map": "function(doc){ if (doc.type=='log') {emit([doc.date,doc.tag,doc.ip], doc);}}"
       }
   }
}

现在如何获取按日期排序的指定IP(标记)的日志条目?

已经尝试过以下变体:/_design/log/_view/browse?startkey = [“info”,“8.8.8.8”]但没有成功。

2 个答案:

答案 0 :(得分:0)

您的开始键需要3个元素:日期,标签和IP。

您的不成功查询在开始键中只有2个元素。

有一些复合键的文档。在使用的示例中,它们具有年,月和日的不同键。您可以在本书中找到示例:http://shop.oreilly.com/product/0636920018247.do

答案 1 :(得分:-1)

地图功能:

function(doc) {
  if (doc.type === 'log') {
    emit([doc.tag, doc.ip, doc.date], 1);
  }
}

查询参数(正确的网址编码)

?startkey=["info","8.8.8.8"]&endkey=["info","8.8.8.8",{}]&include_docs=true

结果按日期排序,因为标签和IP是固定的。