2012-03-21 39 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

相关问题