0

我正在学习couchdb,所以我有一个非常基本的问题。假设我有一个名为emailwhere 文档的沙发数据库:

{
  "_id": "fe7759fdf36t",
  "status": "sent",
  "sent_at": 1357151443,
}

{
  "_id": "ewrwe4a38d2353",
  "status": "failed",
  "sent_at": 2347151421,
}

{
  "_id": "f4559fjffd2353",
  "status": "sent",
  "sent_at": 11715154,
}

我想创建两个视图

1) 检索所有文档 where status = sent
2) 检索所有文档 where status = failed and sent_at > 11715157
3) 检索所有按sent_at降序/升序排序的文档status = sent

对于(1),我写道,

{
    "_id": "_design/sentdoc",
    "_rev": "2-dd88de7196c06eed41d2d83a958f0388",
    "views": {
        "query": {
            "map": "function(doc) { if(doc.status == 'sent') {emit(doc_id, doc);} }"
        }
    }
}

我想我在那里做错了什么,所以它不起作用。谁能建议如何编写所有这三个视图?

4

1 回答 1

1

创建这样的视图

函数(文档){
  发射([doc.status,doc.sent_at],doc);
}

查询 #1

在您的 curl 语句(或 Ruby 库或其他)中尝试这些参数

开始键 = [“发送”]
endkey = [“已发送”,{}]

查询 #2

startkey = [“失败”,11715157]
endkey = [“失败”,{}]

查询 #3

开始键 = [“发送”]
endkey = [“发送”,{}]
降序=真

我没有对此进行测试,但应该为您指明正确的方向。

于 2013-01-06T15:24:48.490 回答