2009-06-29 101 views
3

我來自RDBMS背景,我有一個應用程序需要良好的可伸縮性和低延遲。我想給CouchDB一個嘗試。但是,由於唯一的鍵約束,我需要檢測特定的INSERT操作何時失敗。 CouchDB是否支持這一點?我看了一下文檔,但我無法找到任何相關的東西。CouchDB是否支持unqiue密鑰約束?

+0

您知道這個事實:即使項目本身說明它還沒有準備好生產,並且可能會有重大變化? http://wiki.apache.org/couchdb/Frequently_asked_questions#is_couchdb_ready_for_production – jitter 2009-06-29 13:25:27

回答

2

每個文檔的_id是唯一的(在同一個數據庫中),但是文檔中的其他字段沒有限制。

特別是,不存在跨越兩個或更多文檔的限制。

您可以設置validation documents爲文檔設置驗證規則,但它們又是一個一個文檔的基礎文檔。

1

正如上面的海報所說,除文檔_id外,其他字段沒有限制。 _id可以由couchdb自動生成,也可以創建自己的。 (爲了我的目的,我創造了我自己的,因爲我知道我可以保證鑰匙的獨特性)。

在最低的API級別,如果嘗試使用現有文檔ID的PUT請求,它將被HTTP 409錯誤拒絕 - 除非您提供現有文檔的正確版本(_rev屬性)。

我不會使用couchdb運行任何關鍵任務,但代碼不在Apache孵化器中,而且功能非常強大。許多人正在使用它運行網站。