cloudant:更新替换现有数据的文档

时间:2017-06-12 21:28:41

标签: cloudant python-cloudant

我有以下文件

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

现在我想将以上的dosument更新到以下

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

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

1 个答案:

答案 0 :(得分:0)

在将文档保存回数据库之前,您需要从文档的本地副本中明确删除 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.html处的field_set方法:

  

static field_set(doc,field,value)

     

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