我在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)。隨着新排放,我看不出會發生什麼。 –