更新文件

最近更新时间:2024-09-08 17:20:01

我的收藏

功能介绍

update() 接口用于对通过主键(DocumentSet ID)与 Filter 表达式过滤检索 DocumentSet ,对 DocumentSet 的部分字段进行更新。同时,支持新增字段。
支持通过主键(DocumentSet ID)或文件名,搭配 Filter 表达式过滤需更新的文件。
支持新增字段,支持更改部分字段。
注意:
不能变更系统分配的 DocumentSet ID 字段,不要求事务完整性。
不能变更已上传的文件内容。
说明:
新增字段,在创建 CollectionView 时没有为这些字段设置索引,那么新增这些字段时,系统不会自动为其创建索引。

请求示例

根据文件名过滤需更新的文件
根据文件 ID 过滤需更新的文件
根据 Filter 表达式过滤需更新的文件
如下示例,修改文件名为腾讯云向量数据库.md,并满足 author 字段为 Tencent 的文件,新增字段 tag 更新字段 author 的值。
import tcvectordb
from tcvectordb.model.document import Filter, Document
from tcvectordb.model.enum import ReadConsistency
#create a database client object
client = tcvectordb.RPCVectorDBClient(url='http://10.0.X.X:80', username='root', key='eC4bLRy2va******************************', read_consistency=ReadConsistency.EVENTUAL_CONSISTENCY, timeout=30)

# 指定文件上传所属的文件
db = client.database('db-test-ai')
coll_view = db.collection_view('coll-ai-files')

res = coll_view.update(
data=Document(author ='tencent', tag = '向量'),
document_set_name = ['腾讯云向量数据库.md'],
filter=Filter("author=\\"Tencent\\"")
)
print(res)
如下示例,修改指定文件 ID,并满足 Filter 表达式的文件的标量字段 author 为 Tencent 的文件,并修改 author 字段为 tencent。
import tcvectordb
from tcvectordb.model.document import Filter, Document
from tcvectordb.model.enum import ReadConsistency
#create a database client object
client = tcvectordb.RPCVectorDBClient(url='http://10.0.X.X:80', username='root', key='eC4bLRy2va******************************', read_consistency=ReadConsistency.EVENTUAL_CONSISTENCY, timeout=30)

# 指定文件上传所属的文件
db = client.database('db-test-ai')
coll_view = db.collection_view('coll-ai-files')

res = coll_view.update(
data=Document(author ='tencent'),
document_set_id=["11793516237********"],
filter=Filter("author=\\"Tencent\\"")
)
print(res)
如下示例,修改满足 author 的 Filter 表达式的文件的字段 author 为 Tencent,并修改 author 字段为 tencent,新增字段 tag
import tcvectordb
from tcvectordb.model.document import Filter, Document
from tcvectordb.model.enum import ReadConsistency
#create a database client object
client = tcvectordb.RPCVectorDBClient(url='http://10.0.X.X:80', username='root', key='eC4bLRy2va******************************', read_consistency=ReadConsistency.EVENTUAL_CONSISTENCY, timeout=30)

# 指定文件上传所属的文件
db = client.database('db-test-ai')
coll_view = db.collection_view('coll-ai-files')

res = coll_view.update(
data=Document(author ='tencent', tag = '向量'),
filter=Filter("author=\\"Tencent\\"")
)
print(res)

请求参数

参数名称
参数含义
子参数
是否必选
配置方法及要求
document_set_name
指定需更新的文件名。
-
支持批量更新,数据元素最大值为20。
说明:
同时配置 document_set_name filter 参数,更新数据将会取二者的交集。
document_set_id
指定需更新的文件 ID。
-
支持批量更新,数据元素最大值为20。
说明:
同时配置 document_set_id filter 参数,更新数据将会取二者的交集。
filter
配置 Filter 表达式过滤需更新的文件

使用创建 CollectionView 指定的 Filter 索引的字段设置查询过滤表达式。Filter 表达式格式为 <field_name><operator><value>,多个表达式之间支持 and(与)、or(或)、not(非)关系。具体信息,请参见 混合检索。其中:
<field_name>:表示要过滤的字段名。
<operator>:表示要使用的运算符。
string :匹配单个字符串值(=)、排除单个字符串值(!=)、匹配任意一个字符串值(in)、排除所有字符串值(not in)。其对应的 Value 必须使用英文双引号括起来。
uint64:大于(>)、大于等于(>=)、等于(=)、小于(<)、小于等于(<=)。例如:expired_time > 1623388524。
array:数组类型,包含数组元素之一(include)、排除数组元素之一(exclude)、全包含数组元素(include all)。例如,name include (\\"Bob\\", \\"Jack\\")。
<value>:表示要匹配的值。
示例:Filter('author="jerry"').And('page>20')
data
设置需更新的字段
old_field
当前已存在的字段,更新字段对应的数据。
类型:string。
字符长度要求:[1,256]。
new_field
新增字段,并给新字段赋值。
类型:string。
字符长度要求:[1,256]。

返回消息

{'code': 0, 'msg': 'Operation success, requestId: 16f78e1d59149c1760bafd**********', 'affectedCount': 1}
参数名
参数含义
affectedCount
更新的文档数量。如果该参数返回的值为 0,说明更新无效。