跳到主要内容

upsert()

此操作会将行 upsert 到 Collection 中。部分更新可应用字段操作,且每一行都会依据 Collection 的 Schema 进行校验。

java
public UpsertResp upsert(UpsertReq request)

请求语法​

java
UpsertReq.builder()
.data(data)
.databaseName(databaseName)
.collectionName(collectionName)
.partitionName(partitionName)
.partialUpdate(partialUpdate)
.fieldOps(fieldOps)
.build();

构建器方法:

  • data(List<JsonObject> data)

    要插入或更新的行。每个部分更新行都必须包含其主键。

  • databaseName(String databaseName)

    Database 的名称。省略时,该值默认为当前 Database。

  • collectionName(String collectionName)

    目标 Collection 的名称。

  • partitionName(String partitionName)

    目标 Partition 的名称。

  • partialUpdate(boolean partialUpdate)

    省略的非主键字段是否应保持不变。

  • fieldOps(List<FieldPartialUpdateOp> fieldOps)

    字段级操作。ARRAY_APPEND 和 ARRAY_REMOVE 意味着部分更新语义。

返回类型:

UpsertResp

返回:

包含插入或更新的 Entity 数量以及操作成本(getCost())。

参数:

  • upsertCnt (long) -

    已 upsert 的 Entity 数量。

  • primaryKeys (List<Object>) -

    已 upsert 的 Entity 的主键。

  • cost (Long) -

    操作的时间成本。

异常:

  • MilvusClientException

    当请求校验、传输或服务器执行失败时抛出。请检查异常消息,以获取确切的失败原因。

示例​

java
UpsertResp response = client.upsert(UpsertReq.builder()
.collectionName("books")
.data(rows)
.fieldOps(fieldOps)
.build());
最低 SDK 版本v3.0.x