条件过滤和更新

条件更新包含条件过滤更新两部分内容,后者目前是指对数组的更新。

1. 使用说明

对于主要的增删改查,可以通过 SetCondition 接口设置过滤条件,仅当条件满足时,才会返回查询的数据或才执行更新操作,否则返回错误码 COMMON_ERR_CONDITION_NOT_MATCHED

/**
    @brief  设置过滤条件
    @param [IN] filter     过滤条件例如:fieldValue > 4
    @retval int     错误码
**/
func (r *Record) SetCondition(filter string) int { ... }

对于修改请求,除了 SetData 设置数据,还可以通过 SetOperation 接口设置更新操作,目前是指对数组的插入(PUSH)、删除(POP)、修改(SET)操作。

/**
    @brief  设置附加操作
    @param [IN] operation     附加操作:PUSH gameids #[-1][$=123]
    @param [IN] operateOption 附加操作类型 0|1
    @retval int     错误码
**/
func (r *Record) SetOperation(operation string, operateOption int32) int { ... }

上述 SetCondition、SetOperation 设置的是类 SQL 的文本,见详细语法说明

2. 哪些请求支持条件更新?

版本大于等于 3.55.0 的 SDK 中,支持的有

  • TcaplusApiGetReq
  • TcaplusApiDeleteReq
  • TcaplusApiReplaceReq
  • TcaplusApiUpdateReq
  • TcaplusApiGetByPartkeyReq
  • TcaplusApiPBFieldGetReq
  • TcaplusApiPBFieldUpdateReq
  • TcaplusApiPBFieldIncreaseReq
  • TcaplusApiListGetReq
  • TcaplusApiListGetAllReq
  • TcaplusApiListDeleteBatchReq
  • TcaplusApiListDeleteReq
  • TcaplusApiListReplaceReq
  • TcaplusApiTableTraverseReq
  • TcaplusApiListTableTraverseReq

有部分请求,以及 Batch 类操作,需要版本大于等于 3.64.0 才能支持,包括

  • TcaplusApiIncreaseReq
  • TcaplusApiUpdateByPartkeyReq
  • TcaplusApiDeleteByPartkeyReq
  • TcaplusApiBatchGetReq
  • TcaplusApiBatchDeleteReq
  • TcaplusApiBatchUpdateReq
  • TcaplusApiBatchReplaceReq

在条件过滤、更新的支持下,使用 Fieldget、FieldUpdate,能够实现类 Schema-free 的用法

更多关于条件过滤和更新的能力支持,请联系Tcaplus。

3. 注意事项

  • 参数 filteroperation 文本最大长度是1023。

results matching ""

    No results matching ""