【问题标题】:CouchDB bulk delete Node.jsCouchDB 批量删除 Node.js
【发布时间】:2016-10-24 12:30:49
【问题描述】:

我正在使用 Cloudant 节点模块来修改我的 Cloudant 数据库。我将以下文件发送至db.bulk(params,callback) function.

{ docs: [
   { "_id": "...",
     "_rev": "...",
    "_deleted": true
   },
   { "_id": "...",
     "_rev": "...",
    "_deleted": true
   },
   { "_id": "...",
     "_rev": "...",
    "_deleted": true
   },
   { ... }   
]}

调用此函数后,我没有收到任何错误,但是当我稍后尝试查询数据库时,我仍然可以取回已删除的文档?我知道 Cloudant 有“墓碑文件”,所以它们应该仍然存在,但我根本看不到墓碑文件积极的。

即使我尝试在删除了选择器的情况下查询数据库:true 我也没有得到任何回复。

我错过了什么吗?

P.S 如果您想知道为什么我将“_deleted”放在批量文档中,我只是在关注 this site said to do.

【问题讨论】:

  • 在批量操作中,某些更改可能会失败,而其他更改会成功。您是否检查了实际响应而不仅仅是err 参数?
  • 是的,我做到了,它传回了每个文档的 _id 和 _rev 编号,这是根据文档 on this page 删除文档的预期行为。
  • 当您稍后查询它们时,它们是否有返回的 _rev、原始 _rev 或其他内容?
  • 好的,等一下,我一定是在一分钟前更改了一些内容,因为我刚刚检查了文档的响应,现在它告诉我我遇到了文档更新冲突。
  • 啊,找到了!我刚刚添加的方法修改了一些文档,因此 _rev 编号已过时。谢谢@OrangeDog,感谢您的帮助!

标签: json node.js couchdb cloudant document-database


【解决方案1】:

在批量操作中,某些更改可能会失败,而其他更改会成功。

您需要检查每次更新的实际响应,而不仅仅是err 参数。即使err 是null,也可能是每次更新都因个别原因而失败,例如修订冲突。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2011-04-17
    相关资源
    最近更新 更多