2009-06-29 92 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孵化器中,而且功能非常强大。许多人正在使用它运行网站。