2012-03-06 66 views
1

我正在關注IBM's tutorial on CouchDB,並在查看我的文檔時遇到問題。當我訪問http://127.0.0.1:5984/_utils/database.html?contacts/_design/contacts/_view/byname#時,我可以在視圖中看到我的文檔。爲什麼我只能從_utils中看到我的CouchDB視圖?

enter image description here

然而,當我訪問http://127.0.0.1:5984/contacts/_design/contacts/_view/byname(隨後嘗試通過db.view("contacts/byname", {...查看我的應用程序相同的數據),我只看到null結果我的鍵/值對。

enter image description here

我不認爲這是一個安全問題;無論我是否登錄,我都能在_utils中看到該視圖。

編輯

這裏是我查看源代碼:

function(doc) { 
    if (doc.name) { 
     emit(doc.name, doc); 
    } 
} 

爲什麼我可以看到它在一個地方而不是其他?

+0

你的視圖源代碼是什麼樣的? – 2012-03-06 05:43:23

+0

我用我的源代碼更新了這個問題。 – 2012-03-06 12:43:43

回答

2

如所建議的通過安東尼奧斯,命令

couchapp generate view contacts byname 

已創建的文件views/byname/reduce.js與空降低功能。您應該將其刪除或使用?reduce=false進行查詢(Futon在默認情況下添加它)。

作爲便箋:使用Futon時,可以使用Firebug查看正在進行的查詢。

+0

Chrome中是否也有這種方式?或者我應該在Chrome中使用Firebug Lite? – 2012-03-07 12:11:45

+1

@Wraith,在Chrome上按F12並選擇網絡選項卡(但Firebug更漂亮;-))。 – 2012-03-07 17:39:46

+0

感謝您的提示! – 2012-03-08 12:25:34

2

也許你有一個reduce函數,丟棄文檔內容,或減少到null?我從屏幕截圖中看到,您沒有點擊「減少」複選框,因此您看到的只是地圖功能的結果。

+0

+1讓我走上正確的軌道。這是一個很棒的建議,謝謝! – 2012-03-07 12:11:20

相關問題