我来自RDBMS背景,我在这里有一个应用程序需要良好的可扩展性和低延迟。我想试试CouchDB。但是,我需要检测特定INSERT操作何时因唯一键约束而失败。 CouchDB支持这个吗?我看了一下这些文档,但是我找不到任何相关内容。
答案 0 :(得分:2)
每个文档的_id是唯一的(在同一个数据库中),但文档中的其他字段没有约束。
特别是,没有跨两个或多个文档的约束。
您可以设置validation documents来设置文档的验证规则,但它们也是逐个文档的。
答案 1 :(得分:1)
如上面的海报所说,除了文档_id之外,其他字段没有限制。 _id可以由couchdb自动生成,也可以创建自己的.id。 (为了我的目的,我创造了自己的,因为我知道我可以保证钥匙的独特性。)
在最低API级别,如果您尝试使用现有文档ID的PUT请求,它将被HTTP 409错误拒绝 - 除非您提供现有文档的正确修订版(_rev属性)。
我不会使用couchdb运行任何关键任务,但代码不在Apache孵化中,而且非常实用。很多人都在用它运行网站。