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 数量。
异常:
-
MilvusClientException
当请求验证、传输或服务器执行失败时引发。请检查异常消息以获取确切的失败原因。
示例
java
UpsertResp response = client.upsert(UpsertReq.builder()
.collectionName("books")
.data(rows)
.fieldOps(fieldOps)
.build());