最近更新时间:2024.04.16 13:11:55
首次发布时间:2023.12.21 19:03:20
UpsertData 用于在指定的数据集 Collection 内写入数据。指定写入的数据是一个数组,允许单次插入一条数据或者多条数据,单次最多可插入100条数据。
说明
当前不支持更新部分字段,每次写入数据都要更新所有字段。写入数据时,如果 Collection 中已存在相同主键的数据,则会覆盖源数据;如果 Collection 中没有相同主键的数据,则会写入新数据。
参数名 | 子参数 | 类型 | 是否必选 | 参数说明 |
---|---|---|---|---|
data 说明 Data 结构体或其构成的列表。 | fields | array<map> | 是 | 指定写入的数据。
|
TTL | int | 否 | 数据过期时间,单位为秒。
|
collection, _ := service.GetCollection("go") field1 := map[string]interface{}{ "doc_id": "111", "text_vector": genRandomVector(12), "text_sparse_vector":map[string]float64{"hello": 0.34, "world": 0.03, "!": 0.11} "like": 1, "price": 1.11, "author": []string{"gy"}, "aim": true, } field2 := map[string]interface{}{ "doc_id": "222", "text_vector": genRandomVector(12), "text_sparse_vector": map[string]float64{"hello": 0.34, "world": 0.03, "!": 0.11} "like": 2, "price": 2.22, "author": []string{"gy", "xjq"}, "aim": false, } field3 := map[string]interface{}{ "doc_id": "333", "text_vector": genRandomVector(12), "text_sparse_vector": map[string]float64{"hello": 0.34, "world": 0.03, "!": 0.11} "like": 3, "price": 3.33, "author": []string{"gy"}, "aim": true, } field4 := map[string]interface{}{ "doc_id": "444", "text_vector": genRandomVector(12), "text_sparse_vector": map[string]float64{"hello": 0.34, "world": 0.03, "!": 0.11} "like": 4, "price": 4.44, "author": []string{"gy"}, "aim": true, } data1 := vikingdb.Data{ Fields: field1, TTL: 100000, } data2 := vikingdb.Data{ Fields: field2, TTL: 200000, } data3 := vikingdb.Data{ Fields: field3, TTL: 100000, } data4 := vikingdb.Data{ Fields: field4, } datas := []vikingdb.Data{ data1, data2, data3, data4, } err := collection.UpsertData(datas) if err != nil { print(err.Error()) }
Go 调用执行上面的任务,执行成功无返回信息。