【问题标题】:cloudant: update document which replace existing datacloudant:更新替换现有数据的文档
【发布时间】:2017-06-12 21:28:41
【问题描述】:

我有以下文件

{
  "_id": "9036472948305957379",
  "_rev":"162de87a696361533791aa7",
  "firstname":"xyz",
  "lastname": "abc"
}

现在我想将以上文档更新为以下内容

   {
     "_id": "9036472948305957379",
     "_rev":"162de87a696361533791aa7",
     "name":"xyz abc"
  }

如果我执行 doc['name'] = "xyz abc" 它不会删除 firstname 和 lastname 属性。我该如何实现?

【问题讨论】:

    标签: cloudant python-cloudant


    【解决方案1】:

    在将文档保存回数据库之前,您需要明确删除文档的本地副本中的 firstnamelastname 属性。

    如果我正确理解您的问题,当您启动更新操作时,您当前正在将以下文档正文(隐式或显式)发送到数据库:

    {
     "_id": "9036472948305957379",
     "_rev":"162de87a696361533791aa7",
     "firstname":"xyz",
     "lastname": "abc",
     "name":"xyz abc"
    }
    

    但是,您的有效负载需要如下所示:

    {
     "_id": "9036472948305957379",
     "_rev":"162de87a696361533791aa7",
     "name":"xyz abc"
    }
    

    如果您使用的是 python-cloudant 库,请查看 http://python-cloudant.readthedocs.io/en/latest/document.htmlfield_set 方法:

    静态字段集(文档、字段、值)

    为本地缓存的 Document 对象中的字段设置或替换值。要删除该字段,请将值设置为 None。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 1970-01-01
      相关资源
      最近更新 更多