管理数据库

最近更新时间:2024-09-03 10:41:21

我的收藏

设置权限

登录 云开发 CloudBase 控制台 ,并单击前往云开发统一工作台。
针对每个集合设置对应的权限,可在权限设置下设置:



数据库权限详情参见 权限控制

索引管理

在集合中为查询条件的字段建立索引,是保证数据库性能、提升用户体验的重要手段。

操作步骤

1. 登录 云开发 CloudBase 控制台 ,并点击前往云开发统一工作台。
2. 切换到数据库集合页,并选择需要导入数据的集合。
3. 进入索引管理页面可进行删除新建索引操作。




单字段索引

您可以为查询条件对应的字段创建单字段索引,如果该字段是嵌套字段,可以使用点表示法。例如对如下格式的记录中的 color 字段进行索引时,可以用 style.color 表示。
{
"_id": "",
"style": {
"color": ""
}
}

在设置单字段索引时,可任意指定索引的排序为升序或降序,数据库总能在对索引字段的排序查询中,进行正确的排序。

组合索引

组合索引即一个索引包含多个字段。当查询条件使用的字段包含在索引定义的所有字段或前缀字段里时,会命中索引,优化查询性能。
说明:
索引前缀即组合索引的字段中定义的前 1 到多个字段,例如对集合 studentsnameagescore 三个字段按顺序定义了组合索引,那么该索引的前缀包含:
name
name, age
能命中索引的查询字段组合包含:
name
name, age
name, age, score
{
"_id": "1",
"name": "luke",
"age": 26,
"score": 80
}

组合索引具有以下特点:
1. 字段顺序决定组合索引效果: 例如,定义组合索引分别为 name, ageage, name 是不同的。当组合索引为 name, age 时,其索引前缀为 name,对字段 name 的查询可以命中 name, age 索引,而对字段 age 的查询无法命中该索引,因为 age 不属于 name, age 的前缀(反之字段 age 能命中 age, name 索引)。
2. 查询字段排序影响命中索引: 组合索引为 age:升序,score:降序,字段排序对索引命中效果如下:
age:升序,score:降序
age:降序,score:升序
age:升序,score:升序
age:降序,score:降序
score:升序/降序,age:升序/降序
命中
命中
未命中
未命中
未命中
组合索引为 age:升序,score:升序,字段排序对索引命中效果如下:
age:升序,score:升序
age:降序,score:降序
age:升序,score:降序
age:降序,score:升序
score:升序/降序,age:升序/降序
命中
命中
未命中
未命中
未命中

地理位置索引

云开发目前支持建立平面几何的地理位置索引,使用地理位置查询功能时,必须为地理位置数据的字段建立地理位置索引。
例如对含地理位置字段 point 的集合建立地理位置索引:
{
"_id": "",
"point": new db.Geo.Point(50, 50)
}





索引使用注意事项

唯一性限制

创建索引时,索引属性选择唯一,即可添加唯一性限制。此限制会要求集合中索引字段对应的值不能重复。 例如,某个集合内建立了索引字段 foo,且属性为唯一,那么在这个集合内,要求不能存在 foo 字段相同的文档。
说明:
需特别注意的是,假如记录中不存在某个字段,则对索引字段来说其值默认为 null。如果索引有唯一性限制,则不允许存在两个或以上的该字段为空 / 不存在该字段的记录。

大小限制

索引的字段大小限制不能超过 1024 字节
添加索引时,如果集合中已有文档索引字段超过 1024 字节,添加索引时将报错。
已设置索引的字段,如果插入一个文档,文档中该字段超过 1024 字节将会报错。
说明:
每个英文字母(不分大小写)占一字节的空间,每个中文汉字占两字节的空间。

正则表达式

正则查询无法使用索引提升性能。

导入数据

云开发支持在 云开发 CloudBase 控制台 进行数据导入。

操作步骤

1. 登录 云开发 CloudBase 控制台 ,并单击前往云开发统一工作台。
2. 切换到数据库集合页,并选择需要导入数据的集合。进入对应的集合管理页面,单击导入
3. 选择要导入文件的格式以及冲突处理模式,单击导入,即可开始导入的过程。



说明:
目前提供了 Insert、Upsert 两种冲突处理模式。
Insert 模式会在导入时总是插入新记录。
Upsert 模式会判断有无该条记录,如果有则更新记录,否则就插入一条新记录。
JSON、CSV 文件必须是 UTF-8 的编码格式,且其内容类似 MongoDB 的导出格式,示例代码如下:
JSON 示例
CSV 示例
{
"_id": "xxxxxx",
"age": 45
}
{
"_id": "yyyyyy",
"age": 21
}

_id, age
xxxxxx, 45
yyyyyy, 21

说明:
JSON 数据不是数组,而是类似 JSON Lines,即各个记录对象之间使用 \\n 分隔,而非逗号。
JSON 数据每个键值对的键名首尾不能是 . ,例如 ".a"、"abc.",且不能包含多个连续的 . ,例如 "a..b"
键名不能重复,且不能有歧义,例如 {"a": 1, "a": 2}{"a": {"b": 1}, "a.b": 2}
时间格式须为 ISODate 格式,例如 "date": { "$date" : "2018-08-31T17:30:00.882Z" }
当使用 Insert 冲突处理模式时,同一文件不能存在重复的 _id 字段,或与数据库已有记录相同的 _id 字段。
CSV 格式的数据默认以第一行作为导入后的所有键名,余下的每一行则是与首行键名一一对应的键值记录。
4. 导入完成后,您可以在提示信息中看到本次导入记录的情况。

导出数据

云开发支持导出集合已有的数据(目前仅支持导出 CSV、JSON 格式的文件数据)。

操作步骤

1. 登录 云开发 CloudBase 控制台 ,并点击前往云开发统一工作台。
2. 切换到数据库集合页,并选择需要导出数据的集合,单击导出
3. 选择要导出的格式、保存的位置、以及字段,单击导出,即可开始导出的过程。
当选择导出格式为 JSON 时,若不填写字段项,则默认导出所有数据。
当选择导出格式为 CSV 时,则字段为必填项。字段之间使用英文逗号隔开。 字段示例代码如下所示:
_id, name, age, gender;