2
我在加入視圖中的某些文檔時遇到了問題。這裏是我的模式:類型爲「category」的文檔可以將一個嵌入的id數組存放到類型爲「page」的文檔中。兩者都有一個字段「名稱」。CouchDB Map函數 - 如何通過文檔ID獲取其他文檔的數據
我的文檔:
{
"_id": "887c28dcf6dd8429d404d276b900b203",
"_rev": "3-c4d1e0c8378bb0081b5fe3522ee649a0",
"TYPE": "category",
"NAME": "Home",
"PAGES": [
{"PAGE_ID": "887c28dcf6dd8429d404d276b900ad8f"},
{"PAGE_ID": "887c28dcf6dd8429d404d276b900b203"},
{"PAGE_ID": "887c28dcf6dd8429d404d276b900bae0"}
]
}
{
"_id": "887c28dcf6dd8429d404d276b9008c01",
"_rev": "1-afd54c654ae5afa56a3fbd7b1ba119d2",
"TYPE": "page",
"NAME": "Foo"
}
現在我想在這個地圖功能的觀點加入這些:
function(doc) {
if (doc.TYPE == "category") {
for (id in doc.PAGES) {
emit(doc.NAME, doc.PAGES[id].PAGE_ID);
}
}
}
但
代替PAGE_ID我想引用文檔的名稱。 這基本上是 the example from the CouchDB wiki,但它們不顯示地圖功能。那麼有什麼想法?
嗨,現在我得到一個奇怪的結果:列表的第一頁得到解決,然後我得到兩個類別與未解決的頁面id然後第四頁(再次解決)。但我有兩個類別(第一個包含三個頁面,第二個僅包含一個)和四個頁面。 – prehfeldt 2011-05-19 14:18:17
我禁不住注意到你的第二個'PAGE_ID'與文件本身的'_id'相同。哦,我剛剛注意到你的JS是錯誤的...(注意我的回答有所改變) – 2011-05-19 14:55:02
哦,我用ID做了一個愚蠢的copy'n'paste錯誤,對不起。現在它可以工作,謝謝! – prehfeldt 2011-05-19 15:43:05