Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
68589d1d
U
uni-app
项目概览
DCloud
/
uni-app
3 个月 前同步成功
通知
725
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,发现更多精彩内容 >>
未验证
提交
68589d1d
编写于
1月 23, 2021
作者:
W
wanganxp
提交者:
GitHub
1月 23, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update cf-database.md
上级
85fb6a1e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
232 addition
and
229 deletion
+232
-229
docs/uniCloud/cf-database.md
docs/uniCloud/cf-database.md
+232
-229
未找到文件。
docs/uniCloud/cf-database.md
浏览文件 @
68589d1d
...
...
@@ -32,7 +32,7 @@ const collection = db.collection('user');
### 记录 Record / Document
通过
`db.collection(collectionName).doc(docId)`
可以获取指定集合上指定 id 的记录的引用,在记录上可以进行以下操作
通过
`db.collection(collectionName).doc(docId)`
可以获取指定集合上指定
_
id 的记录的引用,在记录上可以进行以下操作
| 接口| 说明 | |
| ----| ------|---- |
...
...
@@ -41,6 +41,9 @@ const collection = db.collection('user');
| | remove| 删除记录(触发请求) |
| 读 | get | 获取记录(触发请求) |
doc(docId)方法的参数只能是字符串,即数据库默认的_id字段。
如需要匹配多个
`_id`
的记录,应使用where方法。可以在where方法里用in指令匹配一个包含
`_id`
的数组。
### 查询筛选指令 Query Command
...
...
@@ -102,7 +105,7 @@ Date 类型用于表示时间,精确到毫秒,可以用 JavaScript 内置 Da
```
js
// 服务端当前时间
new
db
.
serverDate
()
new
db
.
serverDate
()
// 在云函数内使用new Date()和new db.serverDate()效果一样
```
...
...
@@ -110,7 +113,7 @@ new db.serverDate()
//服务端当前时间加1S
new
db
.
serverDate
({
offset
:
1000
})
})
// 在云函数内使用new Date(Date.now() + 1000)和上面的用法效果一样
```
...
...
@@ -219,8 +222,8 @@ limit,即返回记录的最大数量,默认值为100,也就是不设置lim
设置limit有最大值,腾讯云限制为最大1000条,阿里云限制为最大500条。
如需查询更多数据,需要分页多次查询。
如需查询更多数据,需要分页多次查询。
如果使用clientDB传入getTree参数以返回树形数据也受上面的规则限制,不过此时limit方法仅对根节点生效(大量数据建议使用分层加载,不要使用getTree一次返回所有数据)
**get响应参数**
...
...
@@ -431,11 +434,11 @@ collection.field()
```
js
collection
.
field
({
'
age
'
:
true
})
//只返回age字段,其他字段不返回
```
**注意**
-
field内指定是否返回某字段时,不可混用true/false。即{'a': true, 'b': false}是一种错误的参数格式
-
只有使用{ '_id': false }明确指定不要返回_id时才会不返回_id字段,否则_id字段一定会返回。
**注意**
-
field内指定是否返回某字段时,不可混用true/false。即{'a': true, 'b': false}是一种错误的参数格式
-
只有使用{ '_id': false }明确指定不要返回_id时才会不返回_id字段,否则_id字段一定会返回。
### 查询指令
...
...
@@ -888,131 +891,131 @@ db.collection('articles').where({
})
})
```
### 查询数组字段@querywitharr
假设数据表class内有以下数据,可以使用下面两种方式查询数组内包含指定值
```
js
{
"
_id
"
:
"
1
"
,
"
students
"
:
[
"
li
"
,
"
wang
"
]
}
{
"
_id
"
:
"
2
"
,
"
students
"
:
[
"
wang
"
,
"
li
"
]
}
{
"
_id
"
:
"
3
"
,
"
students
"
:
[
"
zhao
"
,
"
qian
"
]
}
```
#### 指定下标查询
```
js
### 查询数组字段@querywitharr
假设数据表class内有以下数据,可以使用下面两种方式查询数组内包含指定值
```
js
{
"
_id
"
:
"
1
"
,
"
students
"
:
[
"
li
"
,
"
wang
"
]
}
{
"
_id
"
:
"
2
"
,
"
students
"
:
[
"
wang
"
,
"
li
"
]
}
{
"
_id
"
:
"
3
"
,
"
students
"
:
[
"
zhao
"
,
"
qian
"
]
}
```
#### 指定下标查询
```
js
const
index
=
1
const
res
=
await
db
.
collection
(
'
class
'
).
where
({
[
'
students.
'
+
index
]:
'
wang
'
})
const
res
=
await
db
.
collection
(
'
class
'
).
where
({
[
'
students.
'
+
index
]:
'
wang
'
})
.
get
()
```
```
```
js
// 查询结果如下
{
{
data
:
[{
"
_id
"
:
"
1
"
,
"
students
"
:
[
"
li
"
,
"
wang
"
]
}]
}]
}
```
#### 不指定下标查询
```
#### 不指定下标查询
```
js
const
res
=
await
db
.
collection
(
'
class
'
).
where
({
students
:
'
wang
'
})
const
res
=
await
db
.
collection
(
'
class
'
).
where
({
students
:
'
wang
'
})
.
get
()
```
```
查询结果如下
查询结果如下
```
js
{
{
data
:
[{
"
_id
"
:
"
1
"
,
"
students
"
:
[
"
li
"
,
"
wang
"
]
},{
"
_id
"
:
"
1
"
,
"
students
"
:
[
"
wang
"
,
"
li
"
]
}]
}
```
#### 数组内是对象
如果将上面class内的数据改为如下形式
```
js
{
"
_id
"
:
"
1
"
,
"
students
"
:
[{
name
:
"
li
"
},{
name
:
"
wang
"
}]
}
{
"
_id
"
:
"
2
"
,
"
students
"
:
[{
name
:
"
wang
"
},{
name
:
"
li
"
}]
}
{
"
_id
"
:
"
3
"
,
"
students
"
:
[{
name
:
"
zhao
"
},{
name
:
"
qian
"
}]
}
```
不指定下标查询的写法可以修改为
```
js
const
res
=
await
db
.
collection
(
'
class
'
).
where
({
'
students.name
'
:
'
wang
'
})
}]
}
```
#### 数组内是对象
如果将上面class内的数据改为如下形式
```
js
{
"
_id
"
:
"
1
"
,
"
students
"
:
[{
name
:
"
li
"
},{
name
:
"
wang
"
}]
}
{
"
_id
"
:
"
2
"
,
"
students
"
:
[{
name
:
"
wang
"
},{
name
:
"
li
"
}]
}
{
"
_id
"
:
"
3
"
,
"
students
"
:
[{
name
:
"
zhao
"
},{
name
:
"
qian
"
}]
}
```
不指定下标查询的写法可以修改为
```
js
const
res
=
await
db
.
collection
(
'
class
'
).
where
({
'
students.name
'
:
'
wang
'
})
.
get
()
```
查询结果如下
```
js
{
data
:
[{
"
_id
"
:
"
1
"
,
"
students
"
:
[{
name
:
"
li
"
},{
name
:
"
wang
"
}]
},
{
"
_id
"
:
"
2
"
,
"
students
"
:
[{
name
:
"
wang
"
},{
name
:
"
li
"
}]
}]
}
```
```
查询结果如下
```
js
{
data
:
[{
"
_id
"
:
"
1
"
,
"
students
"
:
[{
name
:
"
li
"
},{
name
:
"
wang
"
}]
},
{
"
_id
"
:
"
2
"
,
"
students
"
:
[{
name
:
"
wang
"
},{
name
:
"
li
"
}]
}]
}
```
## 删除文档
...
...
@@ -1753,8 +1756,8 @@ let res = await db.collection('user').where({
## 事务
事务通常用来在某个数据库操作失败之后进行回滚。
事务通常用来在某个数据库操作失败之后进行回滚。
> 事务因为要锁行,是有时间限制的。从事务开始到事务提交/回滚,时间不可超过10s。
### runTransaction
...
...
@@ -7600,12 +7603,12 @@ let res = await db
##### API 说明
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
dayOfMonth
(
<
日期字段
>
)
db
.
command
.
aggregate
.
dayOfMonth
(
<
日期字段
>
)
db
.
command
.
aggregate
.
dayOfMonth
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
...
...
@@ -7649,13 +7652,13 @@ let res = await db
##### API 说明
**注意:周日是每周的第 1 天**
**注意:周日是每周的第 1 天**
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
dayOfWeek
(
<
日期字段
>
)
db
.
command
.
aggregate
.
dayOfWeek
(
<
日期字段
>
)
db
.
command
.
aggregate
.
dayOfWeek
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
...
...
@@ -7698,14 +7701,14 @@ let res = await db
聚合操作符。返回日期字段对应的天数(一年中的第几天),是一个介于 1 到 366 之间的整数。
##### API 说明
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
dayOfYear
(
<
日期字段
>
)
db
.
command
.
aggregate
.
dayOfYear
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
##### API 说明
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
dayOfYear
(
<
日期字段
>
)
db
.
command
.
aggregate
.
dayOfYear
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
...
...
@@ -7747,13 +7750,13 @@ let res = await db
##### API 说明
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
hour
(
<
日期字段
>
)
db
.
command
.
aggregate
.
hour
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
hour
(
<
日期字段
>
)
db
.
command
.
aggregate
.
hour
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
...
...
@@ -7794,17 +7797,17 @@ let res = await db
聚合操作符。返回日期字段对应的 ISO 8601 标准的天数(一周中的第几天),是一个介于 1(周一)到 7(周日)之间的整数。
##### API 说明
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
isoDayOfWeek
(
<
日期字段
>
)
db
.
command
.
aggregate
.
isoDayOfWeek
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
isoDayOfWeek
(
<
日期字段
>
)
db
.
command
.
aggregate
.
isoDayOfWeek
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
```
js
...
...
@@ -7827,7 +7830,7 @@ let res = await db
})
.
end
()
```
输出如下:
```
js
...
...
@@ -7842,21 +7845,21 @@ let res = await db
##### API 说明
根据 ISO 8601 标准,周一到周日视为一周,本年度第一个周四所在的那周,视为本年度的第 1 周。
例如:2016 年 1 月 7 日是那年的第一个周四,那么 2016.01.04(周一)到 2016.01.10(周日) 即为第 1 周。同理,2016 年 1 月 1 日的周数为 53。
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
isoWeek
(
<
日期字段
>
)
db
.
command
.
aggregate
.
isoWeek
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
isoWeek
(
<
日期字段
>
)
db
.
command
.
aggregate
.
isoWeek
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
```
js
...
...
@@ -7864,7 +7867,7 @@ db.command.aggregate.isoWeek({date:<日期字段>,timezone:<时区>})
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
```
我们使用
`isoWeek()`
对
`date`
字段进行投影,获取对应的 ISO 8601 标准的周数(一年中的第几周):
...
...
@@ -7879,7 +7882,7 @@ let res = await db
isoWeek
:
$
.
isoWeek
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
...
...
@@ -7894,19 +7897,19 @@ let res = await db
聚合操作符。返回日期字段对应的 ISO 8601 标准的天数(一年中的第几天)。
##### API 说明
此处的“年”以第一周的周一为开始,以最后一周的周日为结束。
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
isoWeekYear
(
<
日期字段
>
)
db
.
command
.
aggregate
.
isoWeekYear
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
isoWeekYear
(
<
日期字段
>
)
db
.
command
.
aggregate
.
isoWeekYear
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
```
js
...
...
@@ -7914,7 +7917,7 @@ db.command.aggregate.isoWeekYear({date:<日期字段>,timezone:<时区>})
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
```
我们使用
`isoWeekYear()`
对
`date`
字段进行投影,获取对应的 ISO 8601 标准的天数(一年中的第几天):
...
...
@@ -7928,7 +7931,7 @@ let res = await db
isoWeekYear
:
$
.
isoWeekYear
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
...
...
@@ -7943,17 +7946,17 @@ let res = await db
聚合操作符。返回日期字段对应的毫秒数,是一个介于 0 到 999 之间的整数。
##### API 说明
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
millisecond
(
<
日期字段
>
)
db
.
command
.
aggregate
.
millisecond
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
millisecond
(
<
日期字段
>
)
db
.
command
.
aggregate
.
millisecond
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
```
js
...
...
@@ -7962,7 +7965,7 @@ db.command.aggregate.millisecond({date:<日期字段>,timezone:<时区>})
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
我们使用
`millisecond()`
对
`date`
字段进行投影,获取对应的毫秒数:
```
js
...
...
@@ -7975,7 +7978,7 @@ let res = await db
millisecond
:
$
.
millisecond
(
'
$date
'
),
})
.
end
()
```
```
输出如下:
...
...
@@ -7990,17 +7993,17 @@ let res = await db
聚合操作符。返回日期字段对应的分钟数,是一个介于 0 到 59 之间的整数。
##### API 说明
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
minute
(
<
日期字段
>
)
db
.
command
.
aggregate
.
minute
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
minute
(
<
日期字段
>
)
db
.
command
.
aggregate
.
minute
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
```
js
...
...
@@ -8008,7 +8011,7 @@ db.command.aggregate.minute({date:<日期字段>,timezone:<时区>})
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
```
我们使用
`minute()`
对
`date`
字段进行投影,获取对应的分钟数:
...
...
@@ -8022,7 +8025,7 @@ let res = await db
minute
:
$
.
minute
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
...
...
@@ -8036,14 +8039,14 @@ let res = await db
聚合操作符。返回日期字段对应的月份,是一个介于 1 到 12 之间的整数。
##### API 说明
##### API 说明
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
month
(
<
日期字段
>
)
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
month
(
<
日期字段
>
)
db
.
command
.
aggregate
.
month
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
db
.
command
.
aggregate
.
month
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
...
...
@@ -8055,7 +8058,7 @@ db.command.aggregate.month({date:<日期字段>,timezone:<时区>})
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
```
我们使用
`month()`
对
`date`
字段进行投影,获取对应的月份:
...
...
@@ -8069,7 +8072,7 @@ let res = await db
month
:
$
.
month
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
...
...
@@ -8084,17 +8087,17 @@ let res = await db
聚合操作符。返回日期字段对应的秒数,是一个介于 0 到 59 之间的整数,在特殊情况下(闰秒)可能等于 60。
##### API 说明
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
second
(
<
日期字段
>
)
db
.
command
.
aggregate
.
second
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
second
(
<
日期字段
>
)
db
.
command
.
aggregate
.
second
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
```
js
...
...
@@ -8102,7 +8105,7 @@ db.command.aggregate.second({date:<日期字段>,timezone:<时区>})
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
```
我们使用
`second()`
对
`date`
字段进行投影,获取对应的秒数:
...
...
@@ -8116,7 +8119,7 @@ let res = await db
second
:
$
.
second
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
...
...
@@ -8131,19 +8134,19 @@ let res = await db
聚合操作符。返回日期字段对应的周数(一年中的第几周),是一个介于 0 到 53 之间的整数。
##### API 说明
每周以周日为开头,
**每年的第一个周日**
即为
`week 1`
的开始,这天之前是
`week 0`
。
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
week
(
<
日期字段
>
)
db
.
command
.
aggregate
.
week
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
week
(
<
日期字段
>
)
db
.
command
.
aggregate
.
week
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
```
js
...
...
@@ -8151,7 +8154,7 @@ db.command.aggregate.week({date:<日期字段>,timezone:<时区>})
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
```
我们使用
`week()`
对
`date`
字段进行投影,获取对应的周数(一年中的第几周):
...
...
@@ -8165,7 +8168,7 @@ let res = await db
week
:
$
.
week
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
...
...
@@ -8180,27 +8183,27 @@ let res = await db
聚合操作符。返回日期字段对应的年份。
##### API 说明
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
year
(
<
日期字段
>
)
db
.
command
.
aggregate
.
year
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
year
(
<
日期字段
>
)
db
.
command
.
aggregate
.
year
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
假设集合
`dates`
有以下文档:
```
js
{
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
```
我们使用
`year()`
对
`date`
字段进行投影,获取对应的年份:
我们使用
`year()`
对
`date`
字段进行投影,获取对应的年份:
```
js
const
$
=
db
.
command
.
aggregate
...
...
@@ -8212,7 +8215,7 @@ let res = await db
year
:
$
.
year
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
...
...
@@ -8399,7 +8402,7 @@ let res = await db.collection('sales').aggregate()
聚合操作符。输入一个数组,或者数组字段的表达式。如果数组中所有元素均为真值,那么返回
`true`
,否则返回
`false`
。空数组永远返回
`true`
。
##### API 说明
语法如下:
```
js
...
...
@@ -8407,7 +8410,7 @@ allElementsTrue([<expression>])
```
##### 示例代码
假设集合
`test`
有如下记录:
```
js
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录