Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
genary
uni-app
提交
f949f6cf
U
uni-app
项目概览
genary
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f949f6cf
编写于
1月 20, 2021
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: uniCloud database
上级
1d3bd001
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
166 addition
and
155 deletion
+166
-155
docs/uniCloud/cf-database.md
docs/uniCloud/cf-database.md
+166
-155
未找到文件。
docs/uniCloud/cf-database.md
浏览文件 @
f949f6cf
...
...
@@ -98,25 +98,21 @@ const collection = db.collection('user');
### 时间 Date
**使用阿里云时请存储日期字符串或者时间戳,比如`new Date().toISOString()`。数据库存储Date类型数据仅腾讯云支持**
Date 类型用于表示时间,精确到毫秒,可以用 JavaScript 内置 Date 对象创建。需要特别注意的是,用此方法创建的时间是客户端时间,不是服务端时间。如果需要使用服务端时间,应该用 API 中提供的 serverDate 对象来创建一个服务端当前时间的标记,当使用了 serverDate 对象的请求抵达服务端处理时,该字段会被转换成服务端当前的时间,更棒的是,我们在构造 serverDate 对象时还可通过传入一个有 offset 字段的对象来标记一个与当前服务端时间偏移 offset 毫秒的时间,这样我们就可以达到比如如下效果:指定一个字段为服务端时间往后一个小时。
<!-- 我们推荐无论是腾讯云还是阿里云都以时间戳的方式存储时间字段 -->
Date 类型用于表示时间,精确到毫秒,可以用 JavaScript 内置 Date 对象创建。需要特别注意的是,用此方法创建的时间是客户端时间,不是服务端时间。如果需要使用服务端时间,应该用 API 中提供的 serverDate 对象来创建一个服务端当前时间的标记,当使用了 serverDate 对象的请求抵达服务端处理时,该字段会被转换成服务端当前的时间,更棒的是,我们在构造 serverDate 对象时还可通过传入一个有 offset 字段的对象来标记一个与当前服务端时间偏移 offset 毫秒的时间,这样我们就可以达到比如如下效果:指定一个字段为服务端时间往后一个小时。
<!-- 那么当我们需要使用客户端时间时,存放 Date 对象和存放毫秒数是否是一样的效果呢?不是的,我们的数据库有针对日期类型的优化,建议大家使用时都用 Date 或 serverDate 构造时间对象。 -->
```
js
//服务端当前时间
new
db
.
serverDate
()
```
```
js
// 服务端当前时间
new
db
.
serverDate
()
// 在云函数内使用new Date()和new db.serverDate()效果一样
```
```
js
//服务端当前时间加1S
new
db
.
serverDate
({
offset
:
1000
})
```
```
js
//服务端当前时间加1S
new
db
.
serverDate
({
offset
:
1000
})
// 在云函数内使用new Date(1000)和上面的用法效果一样
```
如果需要对日期进行比较操作,可以使用聚合操作符将日期进行转化,比如以下示例查询所有time字段在
`2020-02-02`
以后的记录
...
...
@@ -7391,10 +7387,6 @@ db.command.aggregate.dateFromParts({
})
```
**说明**
-
`timezone`
字段请参考
[
Olson Timezone Identifier
](
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
)
,形式类似:
`Asia/Shanghai`
##### 示例代码
```
js
...
...
@@ -7624,11 +7616,14 @@ let res = await db
##### API 说明
语法如下:
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
dayOfMonth
(
<
日期字段
>
)
db
.
command
.
aggregate
.
dayOfMonth
(
<
日期字段
>
)
db
.
command
.
aggregate
.
dayOfMonth
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
...
...
@@ -7670,14 +7665,16 @@ let res = await db
##### API 说明
*注意:周日是每周的第 1 天*
*
语法如下:
**注意:周日是每周的第 1 天**
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
dayOfWeek
(
<
日期字段
>
)
```
db
.
command
.
aggregate
.
dayOfWeek
(
<
日期字段
>
)
db
.
command
.
aggregate
.
dayOfWeek
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
...
...
@@ -7717,12 +7714,14 @@ let res = await db
聚合操作符。返回日期字段对应的天数(一年中的第几天),是一个介于 1 到 366 之间的整数。
##### API 说明
语法如下:
```
js
db
.
command
.
aggregate
.
dayOfYear
(
<
日期字段
>
)
##### API 说明
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
dayOfYear
(
<
日期字段
>
)
db
.
command
.
aggregate
.
dayOfYear
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
...
...
@@ -7764,11 +7763,13 @@ let res = await db
##### API 说明
语法如下:
```
js
db
.
command
.
aggregate
.
hour
(
<
日期字段
>
)
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
hour
(
<
日期字段
>
)
db
.
command
.
aggregate
.
hour
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
...
...
@@ -7808,18 +7809,19 @@ let res = await db
聚合操作符。返回日期字段对应的 ISO 8601 标准的天数(一周中的第几天),是一个介于 1(周一)到 7(周日)之间的整数。
##### API 说明
语法如下:
```
js
db
.
command
.
aggregate
.
month
(
<
日期字段
>
)
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
isoDayOfWeek
(
<
日期字段
>
)
db
.
command
.
aggregate
.
isoDayOfWeek
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
假设集合
`dates`
有以下文档:
```
js
{
...
...
@@ -7827,7 +7829,7 @@ db.command.aggregate.month(<日期字段>)
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
我们使用
`
month
()`
对
`date`
字段进行投影,获取对应的 ISO 8601 标准的天数(一周中的第几天):
我们使用
`
isoDayOfWeek
()`
对
`date`
字段进行投影,获取对应的 ISO 8601 标准的天数(一周中的第几天):
```
js
...
...
@@ -7841,9 +7843,9 @@ let res = await db
})
.
end
()
```
输出如下:
输出如下:
```
js
{
"
isoDayOfWeek
"
:
2
...
...
@@ -7856,27 +7858,30 @@ let res = await db
##### API 说明
根据 ISO 8601 标准,周一到周日视为一周,本年度第一个周四所在的那周,视为本年度的第 1 周。
例如:2016 年 1 月 7 日是那年的第一个周四,那么 2016.01.04(周一)到 2016.01.10(周日) 即为第 1 周。同理,2016 年 1 月 1 日的周数为 53。
根据 ISO 8601 标准,周一到周日视为一周,本年度第一个周四所在的那周,视为本年度的第 1 周。
语法如下:
例如:2016 年 1 月 7 日是那年的第一个周四,那么 2016.01.04(周一)到 2016.01.10(周日) 即为第 1 周。同理,2016 年 1 月 1 日的周数为 53。
```
js
db
.
command
.
aggregate
.
isoWeek
(
<
日期字段
>
)
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
isoWeek
(
<
日期字段
>
)
db
.
command
.
aggregate
.
isoWeek
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
假设集合
`dates`
有以下文档:
```
js
{
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
```
我们使用
`isoWeek()`
对
`date`
字段进行投影,获取对应的 ISO 8601 标准的周数(一年中的第几周):
...
...
@@ -7890,10 +7895,10 @@ let res = await db
isoWeek
:
$
.
isoWeek
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
```
js
{
"
isoWeek
"
:
20
...
...
@@ -7903,30 +7908,31 @@ let res = await db
#### isoWeekYear
聚合操作符。返回日期字段对应的 ISO 8601 标准的天数(一年中的第几天)。
##### API 说明
此处的“年”以第一周的周一为开始,以最后一周的周日为结束。
语法如下:
此处的“年”以第一周的周一为开始,以最后一周的周日为结束。
```
js
db
.
command
.
aggregate
.
isoWeekYear
(
<
日期字段
>
)
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
isoWeekYear
(
<
日期字段
>
)
db
.
command
.
aggregate
.
isoWeekYear
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
假设集合
`dates`
有以下文档:
```
js
{
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
我们使用
`isoWeekYear()`
对
`date`
字段进行投影,获取对应的 ISO 8601 标准的天数(一年中的第几天):
```
我们使用
`isoWeekYear()`
对
`date`
字段进行投影,获取对应的 ISO 8601 标准的天数(一年中的第几天):
```
js
const
$
=
db
.
command
.
aggregate
...
...
@@ -7938,10 +7944,10 @@ let res = await db
isoWeekYear
:
$
.
isoWeekYear
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
```
js
{
"
isoWeekYear
"
:
2019
...
...
@@ -7952,18 +7958,19 @@ let res = await db
聚合操作符。返回日期字段对应的毫秒数,是一个介于 0 到 999 之间的整数。
##### API 说明
语法如下:
```
js
db
.
command
.
aggregate
.
millisecond
(
<
日期字段
>
)
```
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
millisecond
(
<
日期字段
>
)
db
.
command
.
aggregate
.
millisecond
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
假设集合
`dates`
有以下文档:
```
js
{
...
...
@@ -7971,9 +7978,9 @@ db.command.aggregate.millisecond(<日期字段>)
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
我们使用
`millisecond()`
对
`date`
字段进行投影,获取对应的毫秒数:
```
js
const
$
=
db
.
command
.
aggregate
let
res
=
await
db
...
...
@@ -7984,10 +7991,10 @@ let res = await db
millisecond
:
$
.
millisecond
(
'
$date
'
),
})
.
end
()
```
```
输出如下:
```
js
{
"
millisecond
"
:
686
...
...
@@ -7998,27 +8005,28 @@ let res = await db
聚合操作符。返回日期字段对应的分钟数,是一个介于 0 到 59 之间的整数。
##### API 说明
语法如下:
```
js
db
.
command
.
aggregate
.
minute
(
<
日期字段
>
)
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
minute
(
<
日期字段
>
)
db
.
command
.
aggregate
.
minute
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
假设集合
`dates`
有以下文档:
```
js
{
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
我们使用
`minute()`
对
`date`
字段进行投影,获取对应的分钟数:
```
我们使用
`minute()`
对
`date`
字段进行投影,获取对应的分钟数:
```
js
const
$
=
db
.
command
.
aggregate
...
...
@@ -8030,10 +8038,10 @@ let res = await db
minute
:
$
.
minute
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
```
js
{
"
minute
"
:
38
...
...
@@ -8044,13 +8052,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
:
<
时区
>
})
```
##### 示例代码
...
...
@@ -8062,10 +8071,10 @@ db.command.aggregate.month(<日期字段>)
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
```
我们使用
`month()`
对
`date`
字段进行投影,获取对应的月份:
```
js
const
$
=
db
.
command
.
aggregate
let
res
=
await
db
...
...
@@ -8076,10 +8085,10 @@ let res = await db
month
:
$
.
month
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
```
js
{
"
month
"
:
5
...
...
@@ -8090,28 +8099,29 @@ let res = await db
聚合操作符。返回日期字段对应的秒数,是一个介于 0 到 59 之间的整数,在特殊情况下(闰秒)可能等于 60。
##### API 说明
语法如下:
```
js
db
.
command
.
aggregate
.
second
(
<
日期字段
>
)
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
second
(
<
日期字段
>
)
db
.
command
.
aggregate
.
second
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
假设集合
`dates`
有以下文档:
```
js
{
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
```
我们使用
`second()`
对
`date`
字段进行投影,获取对应的秒数:
```
js
const
$
=
db
.
command
.
aggregate
let
res
=
await
db
...
...
@@ -8122,10 +8132,10 @@ let res = await db
second
:
$
.
second
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
```
js
{
"
second
"
:
51
...
...
@@ -8136,30 +8146,31 @@ let res = await db
聚合操作符。返回日期字段对应的周数(一年中的第几周),是一个介于 0 到 53 之间的整数。
##### API 说明
每周以周日为开头,
**每年的第一个周日**
即为
`week 1`
的开始,这天之前是
`week 0`
。
语法如下:
每周以周日为开头,
**每年的第一个周日**
即为
`week 1`
的开始,这天之前是
`week 0`
。
```
js
db
.
command
.
aggregate
.
week
(
<
日期字段
>
)
该接口有以下两种用法,语法如下:
```
js
db
.
command
.
aggregate
.
week
(
<
日期字段
>
)
db
.
command
.
aggregate
.
week
({
date
:
<
日期字段
>
,
timezone
:
<
时区
>
})
```
##### 示例代码
假设集合
`dates`
有以下文档:
假设集合
`dates`
有以下文档:
```
js
{
"
_id
"
:
1
,
"
date
"
:
ISODate
(
"
2019-05-14T09:38:51.686Z
"
)
}
```
```
我们使用
`week()`
对
`date`
字段进行投影,获取对应的周数(一年中的第几周):
```
js
const
$
=
db
.
command
.
aggregate
let
res
=
await
db
...
...
@@ -8170,10 +8181,10 @@ let res = await db
week
:
$
.
week
(
'
$date
'
)
})
.
end
()
```
```
输出如下:
```
js
{
"
week
"
:
19
...
...
@@ -8184,28 +8195,29 @@ let res = await db
聚合操作符。返回日期字段对应的年份。
##### API 说明
语法如下:
```
js
db
.
command
.
aggregate
.
year
(
<
日期字段
>
)
该接口有以下两种用法,语法如下:
```
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
let
res
=
await
db
...
...
@@ -8216,10 +8228,10 @@ let res = await db
year
:
$
.
year
(
'
$date
'
)
})
.
end
()
```
输出如下:
```
输出如下:
```
js
{
"
year
"
:
2019
...
...
@@ -8364,7 +8376,7 @@ let res = await db.collection('sales').aggregate()
**一般用法**
假设集合
`test`
存在以下文档:
假设集合
`test`
存在以下文档:
```
js
...
...
@@ -8402,19 +8414,18 @@ let res = await db.collection('sales').aggregate()
聚合操作符。输入一个数组,或者数组字段的表达式。如果数组中所有元素均为真值,那么返回
`true`
,否则返回
`false`
。空数组永远返回
`true`
。
##### API 说明
语法如下:
语法如下:
```
js
allElementsTrue
([
<
expression
>
])
```
##### 示例代码
假设集合
`test`
有如下记录:
假设集合
`test`
有如下记录:
```
js
{
"
_id
"
:
1
,
"
array
"
:
[
true
]
}
{
"
_id
"
:
2
,
"
array
"
:
[
]
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录