别名可以是一个简短的字符串,方便标识和访问对应的集合。一个 Collection 可以设置一个或者多个别名。
SetAlias() 接口用于为 Collection 指定别名。
DeleteAlias() 接口用于删除数据库指定的集合的别名。
说明:
通过集合的别名做业务迁移时,仅需通过 setAlias() 接口将同一别名指向新的集合,别名与集合的映射关系将自动更新为新集合,可直接通过别名访问新集合。
为 Collection 创建别名
接口定义
SetAlias(ctx context.Context, collectionName string, aliasName string) (result *SetAliasResult, err error)
使用示例
说明:
Document 层级的访问优先访问别名,其余级别仅支持原 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 名称。 | |
aliasName | 是 | 设置别名。 | 别名要求如下: 只能使用英文字母,数字,下划线_、中划线-,并以英文字母开头。 长度要求:[1,128]。 |
删除 Collection 别名
接口定义
DeleteAlias(ctx context.Context, aliasName string) (result *DeleteAliasResult, err error)
使用示例
说明:
DB 和 Collection 级别的 drop 操作会同时删除库表下的所有别名。
如下示例,删除别名 go-sdk-test-alias。
colRes, _ := db.DeleteAlias(ctx, aliasName)log.Printf("DeleteAlias: %v", colRes)
出参描述
SetAlias: &{1}DeleteAlias:&{1}
参数名 | 参数含义 |
affectedCount | 影响的集合数量。 |
使用限制
DB 和 Collection 级别的 drop 操作会同时删除库表下的所有别名。
Document 层级的访问优先访问别名,其余级别仅支持原 Collection 名操作。
集合的别名可以和集合名重复,一个集合的多个别名之间不能重复。