Функциональное обновление полей базы
При использовании запросов для обновления полей профиля можно передавать дополнительные инструкции прямо в поле.
Инструкция имеет определенную структуру:
{
"action": "set",
"value": "x",
}
Поле action
может принимать одно из следущих значений:
action | Назначение | Тип поля | value |
---|---|---|---|
set | Работает так же, как и простое обновление поля, устанав ливает значение | все типы: date, string, enum, phone, int, float, tags, object, arr_object | Зависит от типа поля в бд |
unset | Удаляет поле из структуры профиля (для всех полей, кроме email ) | все типы: date, string, enum, phone, int, float, tags, object, arr_object | Нет |
incr | Увеличивает значение поля | int, float | Число |
add | Добавляет элементы в поле профиля | tags, arr_object | Массив строк |
delete | Удаляет элементы из поля профиля | tags, arr_object | Массив строк |
upsert | Устанавливает значение из поля valueв свойство, указанное в поле submatch | object | Зависит от типа поля |
примечание
Для типов данных object
, arr_object
необходимо передавать поля value
и submatch
(путь к свойству, значение которого необходимо обновить).
Пример запроса profiles/update
, уменьшающий значение одного поля и увеличивающий другое:
- JSON
- XML
{
"token": "abcdefghijklmnqrstuvwxyz",
"db_id": 24,
"profile_id": "5a5b64a969d4265b958b9ac3",
"data": {
"checks": {
"action": "incr",
"value": 1000
},
"returns": {
"action": "incr",
"value": -1000
}
}
}