upsert - 更新或插入数据
upsert() 用于插入新记录或更新现有记录。如果存在具有给定 ID 的记录,则将对其进行更新;否则,将插入新记录。
信息
仅支持在使用 SeekdbClient 连接时,才能使用该接口。关于 SeekdbClient 的详细介绍,参见 SeekdbClient。
前提条件
-
您已经安装了 seekdb-js,有关安装 seekdb-js 的详细信息,参见 快速开始。
-
您已经安装了 seekdb 服务器模式,有关安装 seekdb 服务器模式的详细信息,参见 通过 yum install 部署 seekdb。
-
您已经连接到数据库。有关连接的详细操作参见 SeekdbClient。
-
请确保连接的用户已拥有待操作的表的
INSERT和UPDATE权限,查看当前用户权限的相关操作请参见 查看用户权限。如果不具备该权限,请联系管理员为您授权,用户授权的相关操作请参见 直接授予权限。
请求参数
upsert(
ids: ids,
embeddings: embeddings,
documents: documents,
metadatas: metadatas
)
| 参数 | 取值类型 | 是否必选 | 描述 | 取值示例 |
|---|---|---|---|---|
ids | string | string[] | 必选 | 需要修改的 ID。可以是单个,也可以是数组。 | item1 |
embeddings | number[] | number[][] | 可选 | 可以是单个向量或向量数组。如果不提供且提供了 documents,会自动使用 embeddingFunction 生成 | [0.1, 0.2, 0.3] |
documents | string | string[] | 可选 | 文档内容,可以是单个字符串或字符串数组。 | "document text" |
metadatas | Metadata | Metadata[] | 可选 | 元数据,可以是单个对象或对象数组。 | {"category": "AI"} |
请求示例
import { SeekdbClient } from "seekdb";
const client = new SeekdbClient({
host: "127.0.0.1",
port: 2881,
user: "root",
password: "",
database: "test",
});
const collection = await client.getCollection({
name: "my_collection"
});
await collection.upsert({
ids: "item1",
documents: "document text",
metadatas: { category: "AI" }
});
返回参数
无