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

Mapreduce 插入前批量检查值是否存在,mapreduce,nosql,couchdb,schemaless,Mapreduce,Nosql,Couchdb,Schemaless,我在Coach db中有一个数据库,其中包含以下文档: {"foo":["bar1":"baz","bar2":18,"bar3":23.2]} 是否有办法在插入新文档之前对每个值进行批量检查 我想要实现的是,如果数据库中的任何文档中存在键值对foo.bar1=baz和foo.bar2=1,其中baz等于我要插入的新值,则批处理函数不应插入新文档 更具体地说,foo.bar是一个datetime,如果该datetime存在,并且同一文档中的另一个值具有给定值,则不应执行更新 我可以通过执行单个

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

{"foo":["bar1":"baz","bar2":18,"bar3":23.2]}
是否有办法在插入新文档之前对每个值进行批量检查

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

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

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

您需要使用。将所需密钥列表发送到所有文档后,您将得到一个带有状态的响应。未找到的键将具有状态“错误”(未找到)