我在Couch DB(所有版本1.01-1.31)中遇到问题。使用CouchDB进行高级日查询
我的数据是这样的:
{
"_id": "9a12b7fa4b886640be06f74b814306a6",
"_rev": "1-420c723f8c8f7921ead3df04bfc9ade5",
"client_id": "008",
"day": 1,
"month": 1,
"year": 2013,
"comment": "cool"
}
而且我希望看到客户端的时间跨度做了所有的交易,让比如说1月份:
所以我的地图功能是这样的:
function(doc) {
emit([doc.client_id, doc.day,doc.month, doc.year], doc);
}
所以我查询与startkey和endkey像
http://localhost:5984/test/_design/clients/_view/by_cid_day_month_year?startkey=[%22007%22,1,1,2013]&endkey=[%22007%22,32,1,2013]
但是不是从1月份的client_id = 007获取所有文档,而是获取与007匹配的所有记录。
因此,必须有一些我误解的内容。我的查询出了什么问题?它应该怎么看?
我的想法是,我只能看到特定日期的日志,或者从第一天到第六天。
我试图把键,天,月和年作为字符串,但结果总是相同的,甚至有时候很奇怪,就像在上面的例子中,我会在九月份找到一条记录(9),但如果我去四月f.ex。我得到所有记录。
我不明白这一点。这应该是非常简单的。
不是我的套件,但你不应该'发出([doc.client_id,doc.year,doc.month,doc.day] DOC);'(即最显著第一),使比较工作? –
没有区别 –
奇数,与原来的一样,所有的日子都在1到32之间,所以他们会在退回到月份之前被包括在内(即1到32之间的所有天数,无论这个月是否包含在内, 007)。随着新排放,我看不出会发生什么。 –