管理 Collection 别名

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

我的收藏
别名可以是一个简短的字符串,方便标识和访问对应的集合。一个 Collection 可以设置一个或者多个别名。
SetAlias() 接口用于为 Collection 指定别名。
DeleteAlias() 接口用于删除数据库指定的集合的别名。
说明:
通过集合的别名做业务迁移时,仅需通过 setAlias() 接口将同一别名指向新的集合,别名与集合的映射关系将自动更新为新集合,可直接通过别名访问新集合。

为 Collection 创建别名

如下示例,为集合 go-sdk-test-coll 指定别名 go-sdk-test-alias
var (
ctx = context.Background()
database = "go-sdk-test-db"
collectionName = "go-sdk-test-coll"
aliasName = "go-sdk-test-alias"
)
db := client.Database(database)
colRes, _ := db.SetAlias(ctx, collectionName, aliasName)
log.Printf("SetAlias: %v", colRes)
参数名
是否必选
参数含义
配置方法及要求
collectionName
指定需创建别名的 Collection 名称。
使用 ListCollection() 获取指定数据库名下的 Collection 列表,复制需设置别名的集合名。
aliasName
设置别名。
别名要求如下:
只能使用英文字母,数字,下划线_、中划线-,并以英文字母开头。
长度要求:[1,128]。

删除 Collection 别名

如下示例,删除别名 go-sdk-test-alias。
colRes, _ := db.DeleteAlias(ctx, aliasName)
log.Printf("DeleteAlias: %v", colRes)

返回参数

SetAlias: &{1}
DeleteAlias:&{1}
参数名
参数含义
affectedCount
影响的集合数量。

使用限制

DB 和 Collection 级别的 drop 操作会同时删除库表下的所有别名。
Document 层级的访问优先访问别名,其余级别仅支持原 Collection 名操作。
集合的别名可以和集合名重复,一个集合的多个别名之间不能重复。