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. Для удаления поля установите значение Нет.