在插入之前批量检查值是否存在

时间:2013-11-02 20:59:35

标签: mapreduce nosql couchdb schemaless

我在Couch数据库中有一个数据库,其中包含以下文档:

{"foo":["bar1":"baz","bar2":18,"bar3":23.2]}

在插入新文档之前,有没有办法对每个值进行批量检查?

我想要实现的是,如果在数据库中的任何文档中,键值对foo.bar1 = baz和foo.bar2 = 1存在,其中baz等于我要插入的新值,批处理函数不应该插入新文件。

更具体地说,foo.bar是一个日期时间,如果该日期时间存在且同一文档中的另一个值具有给定值,则不应执行更新。

我可以通过首先执行对请求的单个请求来解决这个问题,然后让客户决定。但是,在客户端和沙发数据库之间来回发送的所有数据将非常耗时。此外,我更喜欢在进行此类检查时依赖数据库的完整性。或者是解决问题的sql方式?

1 个答案:

答案 0 :(得分:1)

您需要使用Bulk Document API。将所需密钥列表发送到_all_docs后,您将收到包含状态的响应。未找到的密钥将具有状态“错误”(未找到)