CouchDB是否支持唯一键约束?

时间:2009-06-29 13:21:07

标签: couchdb unique-constraint

我来自RDBMS背景,我在这里有一个应用程序需要良好的可扩展性和低延迟。我想试试CouchDB。但是,我需要检测特定INSERT操作何时因唯一键约束而失败。 CouchDB支持这个吗?我看了一下这些文档,但是我找不到任何相关内容。

2 个答案:

答案 0 :(得分:2)

每个文档的_id是唯一的(在同一个数据库中),但文档中的其他字段没有约束。

特别是,没有跨两个或多个文档的约束。

您可以设置validation documents来设置文档的验证规则,但它们也是逐个文档的。

答案 1 :(得分:1)

如上面的海报所说,除了文档_id之外,其他字段没有限制。 _id可以由couchdb自动生成,也可以创建自己的.id。 (为了我的目的,我创造了自己的,因为我知道我可以保证钥匙的独特性。)

在最低API级别,如果您尝试使用现有文档ID的PUT请求,它将被HTTP 409错误拒绝 - 除非您提供现有文档的正确修订版(_rev属性)。

我不会使用couchdb运行任何关键任务,但代码不在Apache孵化中,而且非常实用。很多人都在用它运行网站。