0

I have following document

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

Now I want to update above dosument to following

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

if I do doc['name'] = "xyz abc" it doesnt remove firstname and lastname attributes. how do I achieve that?

DaenKhaleesi
  • 179
  • 2
  • 5
  • 17

1 Answers1

1

You need to explicitly remove the firstname and lastname properties from your local copy of the document before saving it back in the database.

If I understand your issue correctly you are currently sending the following document body (implicitly or explicitly) to the database when you initiate the update operation:

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

However, your payload needs to look as follows:

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

If you are using the python-cloudant library take a look at the field_set method at http://python-cloudant.readthedocs.io/en/latest/document.html:

static field_set(doc, field, value)

Sets or replaces a value for a field in a locally cached Document object. To remove the field set the value to None.

Community
  • 1
  • 1
ptitzler
  • 923
  • 4
  • 8