我正在学习couchdb,所以我有一个非常基本的问题。假设我有一个名为email
的沙发数据库,其中的文档如下:
{
"_id": "fe7759fdf36t",
"status": "sent",
"sent_at": 1357151443,
}
{
"_id": "ewrwe4a38d2353",
"status": "failed",
"sent_at": 2347151421,
}
{
"_id": "f4559fjffd2353",
"status": "sent",
"sent_at": 11715154,
}
我想创建两个视图
1)检索status = sent
的所有文件
2)检索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);} }"
}
}
}
我想我在那里做错了,所以它不起作用。任何人都可以建议如何写这三个观点吗?
答案 0 :(得分:1)
创建一个这样的视图
function(doc){ emit([doc.status, doc.sent_at], doc); }
查询#1
在curl语句(或Ruby库或其他)中尝试这些参数
startkey = ["sent"] endkey = ["sent",{}]
查询#2
startkey = ["failed", 11715157] endkey = ["failed", {}]
查询#3
startkey = ["sent"] endkey = ["sent", {}] descending = true
我没有对此进行测试,但应该指出正确的方向。