Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
ca562684
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,发现更多精彩内容 >>
未验证
提交
ca562684
编写于
1月 24, 2021
作者:
W
wanganxp
提交者:
GitHub
1月 24, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update clientdb.md
上级
437e7a3e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
17 deletion
+28
-17
docs/uniCloud/clientdb.md
docs/uniCloud/clientdb.md
+28
-17
未找到文件。
docs/uniCloud/clientdb.md
浏览文件 @
ca562684
...
...
@@ -791,7 +791,7 @@ const db = uniCloud.database()
}
```
### 查询树形数据@gettree
### 查询树形数据
gettree
@gettree
HBuilderX 3.0.3+起,clientDB支持在get方法内传入getTree参数查询树状结构数据。(HBuilderX 3.0.5+ unicloud-db组件开始支持,之前版本只能通过js方式使用)
...
...
@@ -1170,7 +1170,7 @@ db.collection("department").get({
-
暂不支持使用getTreePath的同时使用其他联表查询语法
-
如果使用了where条件会对所有查询的节点生效
### 分组统计@groupby
### 分组统计
groupby
@groupby
自
`HBuilderX 3.0.8`
起,clientDB支持分组对数据进行分组统计(groupBy)
...
...
@@ -1402,11 +1402,17 @@ const res = await db.collection('score')
}
```
**注意**
-
`count(*)`
为固定写法,括号里的
*
可以省略
**更复杂一些的用法**
假设
`uni-id-users`
内有以下数据
按时间段统计是常见的需求,而时间段统计会用到日期运算符。
```
js
假设要统计
`uni-id-users`
表的每日新增注册用户数量。表内有以下数据:
```
json
{
"_id"
:
"1"
,
"username"
:
"name1"
,
...
...
@@ -1439,43 +1445,48 @@ const res = await db.collection('score')
}
```
以下用法使用add操作符将register_date转化为日期类型,再使用dateToString将add得到的日期格式化为形如
`2021-01-21`
的字符串,然后根据此字符串进行分组统计,得到每天注册用户量
由于
`register_date`
字段是时间戳格式,含有时分秒信息。但统计每日新增注册用户时是需要忽略时分秒的。
add操作符的用法为
`add(值1,值2)`
1.
首先使用add操作符将
`register_date`
从时间戳转化为日期类型。
dateToString操作符的用法为
`dateToString(日期对象,格式化字符串,时区)`
add操作符的用法为
`add(值1,值2)`
。
`add(new Date(0),register_date)`
表示给字段register_date + 0,这个运算没有改变具体的时间,但把
`register_date`
的格式从时间戳转为了日期类型。
完整操作符列表请参考:
[
clientDB内可使用的聚合操作符
](
uniCloud/clientdb.md?id=aggregate-operator
)
2.
然后使用dateToString将add得到的日期格式化为形如
`2021-01-21`
的字符串,去掉时分秒。
dateToString操作符的用法为
`dateToString(日期对象,格式化字符串,时区)`
。具体如下:
`dateToString(add(new Date(0),register_date),"%Y-%m-%d","+0800")`
3.
然后根据此字符串进行分组统计,得到每天注册用户量。代码如下:
```
js
const
res
=
await
db
.
collection
(
'
uni-id-users
'
)
.
groupBy
(
'
dateToString(add(new Date(0),register_date),"%Y-%m-%d","+0800") as date
'
)
.
groupField
(
'
count(*) as
total
'
)
.
groupField
(
'
count(*) as
newusercount
'
)
.
get
()
```
// 返回结果
查询返回结果如下:
```
js
res
=
{
result
:
{
data
:
[{
date
:
'
2021-01-23
'
,
total
:
3
newusercount
:
3
},{
date
:
'
2021-01-22
'
,
total
:
2
newusercount
:
2
},{
date
:
'
2021-01-21
'
,
total
:
1
newusercount
:
1
}]
}
}
```
**注意**
完整操作符列表请参考:
[
clientDB内可使用的聚合操作符
](
uniCloud/clientdb.md?id=aggregate-operator
)
-
`count(*)`
为固定写法,
*
可以省略
### 数据去重@distinct
### 数据去重
distinct
@distinct
通过.distinct()方法,对数据查询结果中重复的记录进行去重。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录