2012-03-21 38 views
0

我正在使用jquery.couch.js將文檔寫入我的CouchDB。我負責解析JSON數據並準備好請求。當我的腳本實際上發送$.couch.db.saveDoc()命令,我得到一個201 Created響應代碼爲我post請求,其中還包括以下內容:jQuery CouchDB請求返回「已創建」但文檔未添加到數據庫

{"ok":true,"id":"...","rev":"..."} 

(其中「...」是一個實際的UUID)

但之後當我檢查我的CouchDB時,沒有創建文檔。

我以前遇到過這個,但它總是以其他方法解決。基本上,無論文檔是否被創建,沙發看起來都會返回"ok":true。但真正讓我感興趣的部分是它實際返回一個生成的UUID(這意味着請求實際上到達了我的CouchDB,如果我沒有弄錯的話)。所以我無法弄清楚爲什麼這個文件沒有寫出來。

有沒有人遇到過這個問題?

回答

2

有幾件事情,這裏要注意...

  • CouchDB的只會返回一個201創建文檔時已成功fsync'd。這就是爲什麼CouchDB比其他數據庫(如MongoDB)更持久的原因。所以你的數據絕對在磁盤上。
  • 當我說「絕對在磁盤上」時,我的意思是「只有當您的delay_commits在您的配置中設置爲false」。
  • 您如何確認文檔已創建?您是否試圖在其URL(/database/docID)或視圖中檢索文檔?如果它來自視圖,那麼您的索引可能尚未更新。
+0

謝謝。很高興知道'201 Created'不會被返回,除非它實際上是同步的。我試圖通過查看我的Futon界面來確認文檔的創建。這個問題是一個用戶錯誤 - 我仍然習慣於如何過濾和導航在Futon面板中的文檔。我想刪除這個問題,但看到你的答案我會留下你的第一個重點,這是有幫助的。 – 2012-03-21 15:46:52

相關問題