【问题标题】:Bulk check if value exists before inserting在插入之前批量检查值是否存在
【发布时间】:2013-11-02 20:59:35
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: mapreduce nosql couchdb schemaless


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-12
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多