2016-04-17 161 views
1

我有使用以下格式文檔的Cloudant數據庫:我試圖創建一個視圖來方便地讀一開始之間的文件和結束time-data爲什麼這個MapReduce映射函數發射不起作用?

{ 
    "_id": "0ea1ac7d5ef28860abc7030444515c4c", 
    "_rev": "1-362058dda0b8680a818b38e9c68c5389", 
    "text": "text-data", 
    "time-data": 1452988105, 
    "time-text": "3:48 PM - 16 Jan 2016", 
    "link": "http://url/to/website" 
} 

。但是,在查詢返回該映射函數結果「找不到任何文檔」:

function (doc) { 
    emit(doc.time-data, 1); 
} 

......而這樣做:

function (doc) { 
    emit(doc._id, 1); 
} 

爲什麼會出現這種情況?

回答

2

問題出在您的字段的名稱。它包含一個破折號:-

的Javascript將此解釋爲:

return doc.time - data 
return doc.time minus data 

你可以改變你的財產(以類似time_data),或者你可以像這樣創建您的觀點:

function (doc) { 
    if (doc['time-data']) { 
     emit(doc['time-data'], 1); 
    } 
} 
+0

哦,天哪。我很尷尬,因爲被Cloudant的觀點或MapReduce錯誤理解而陷入困境。非常感謝! – David

+0

你不應該!我花了一點時間才弄清楚發生了什麼事情。 – markwatsonatx