Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
d7ed7455
U
uni-app
项目概览
DCloud
/
uni-app
3 个月 前同步成功
通知
719
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d7ed7455
编写于
11月 03, 2020
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: uniCloud database index
上级
5f613f13
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
36 addition
and
1 deletion
+36
-1
docs/uniCloud/hellodb.md
docs/uniCloud/hellodb.md
+36
-1
未找到文件。
docs/uniCloud/hellodb.md
浏览文件 @
d7ed7455
...
...
@@ -150,12 +150,16 @@ db.createCollection("table1")
在uniCloud的web控制台可以看到一个集合的3部分内容。
### 数据内容
data很简单,就是存放的数据记录(record)。
实际上,创建一条新记录,是不管在web控制台创建,还是通过API创建,每条记录都会自带一个
`_id`
字段用以作为该记录的唯一标志。
`_id`
字段是每个集合默认自带且不可删除的字段。同时,它也是集合的索引。
### 数据库索引
所谓索引,是指在集合的众多字段中挑选一个或多个字段,让数据库引擎优先处理这些字段。设置为索引的字段,在通过该字段查询记录时可以获得更快的查询速度。
一个集合可以有多个字段被设为索引。
...
...
@@ -168,11 +172,42 @@ data很简单,就是存放的数据记录(record)。
如果我们要根据name字段来查询,为了提升查询速度,此时可以把name字段设为非唯一索引。
如果对一个文章点赞表,设置文章id和用户id为组合索引,且将此索引设置为唯一索引可以完全限制同一用户对一篇文章多次点赞。
**在web控制台添加上述索引**
![](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/fca53140-1d91-11eb-880a-0db19f4f74bb.jpg
)
**在db_init.json内添加上述索引**
```
json
{
"opendb-news-article"
:
{
"data"
:
[],
"index"
:[{
"IndexName"
:
"user_article_"
,
//
索引名称
"MgoKeySchema"
:
{
//
索引规则
"MgoIndexKeys"
:
[{
"Name"
:
"user_id"
,
//
索引字段
"Direction"
:
"1"
//
索引方向,
1
:ASC-升序,
-1
:DESC-降序,
2
dsphere:地理位置
},{
"Name"
:
"article_id"
,
//
索引字段
"Direction"
:
"1"
//
索引方向,
1
:ASC-升序,
-1
:DESC-降序,
2
dsphere:地理位置
}],
"MgoIsUnique"
:
false
//
索引是否唯一
}
}]
}
}
```
**注意**
-
如果记录中已经存在多个记录某字段相同的情况,那么将该字段设为唯一型索引会失败。
-
如果已经设置某字段为唯一索引,在新增和修改记录时如果该字段的值之前在其他记录已存在,会失败。
-
假如记录中不存在某个字段,则对索引字段来说其值默认为 null,如果该索引字段设为唯一型索引,则不允许存在两个或以上的该字段为null或不存在该字段的记录。
### 数据表格式定义
`DB Schema`
是集合的表结构描述。描述集合有哪些字段、值域类型是什么、是否必填、数据操作权限等很多内容。
因为json文档数据库的灵活性,data数据的字段可以不在schema的描述范围内。
...
...
@@ -245,7 +280,7 @@ uniCloud数据库提供了多种数据导入导出和备份方案。
`db_init.json`
包含三部分:数据内容(data)、数据表索引(index)、数据表结构(schema),形式如下
```
```
json
{
"collection_test"
:
{
//
集合(表名)
"data"
:
[
//
数据
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录