cloudant: обновить документ, который заменит существующие данные

У меня есть следующий документ

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

Теперь я хочу обновить вышеуказанную дозу до следующей

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

если я делаю doc['name'] = "xyz abc", он не удаляет атрибуты имени и фамилии. как мне этого добиться?

1 ответ

Решение

Вы должны явно удалить firstname а также lastname Свойства из вашей локальной копии документа, прежде чем сохранить его обратно в базу данных.

Если я правильно понимаю вашу проблему, вы в настоящее время отправляете следующее тело документа (явным или неявным образом) в базу данных при запуске операции обновления:

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

Однако ваша полезная нагрузка должна выглядеть следующим образом:

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

Если вы используете python-cloudant библиотека взглянуть на field_set метод по адресу http://python-cloudant.readthedocs.io/en/latest/document.html:

static field_set (документ, поле, значение)

Устанавливает или заменяет значение для поля в локально кэшированном объекте Document. Для удаления поля установите значение Нет.

Другие вопросы по тегам