Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
3010fc6b
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3172
Star
105
Fork
804
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
93
列表
看板
标记
里程碑
合并请求
67
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
93
Issue
93
列表
看板
标记
里程碑
合并请求
67
合并请求
67
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
3010fc6b
编写于
2月 19, 2022
作者:
雪洛
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'pr_78'
上级
ef1c7bb6
8a462046
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
63 addition
and
62 deletion
+63
-62
docs/uniCloud/cf-database.md
docs/uniCloud/cf-database.md
+63
-62
未找到文件。
docs/uniCloud/cf-database.md
浏览文件 @
3010fc6b
...
...
@@ -2001,29 +2001,29 @@ db.collection('scores').aggregate()
-
聚合操作实例仅用于查询,不可执行增删改操作。在聚合操作实例上只能使用聚合操作方法,不能使用where/orderBy等基础方法,where需改为match,orderBy应使用sort实现,细节请阅读下方聚合操作文档。
-
聚合操作在大数据量下性能不如简单查询,请根据自身业务选择合适的用法
云函数中使用时切勿复用aggregate实例,容易引发Bug。
云函数中使用时切勿复用aggregate实例,容易引发Bug。
以下两种写法均为错误示例:
```
js
const
db
=
uniCloud
.
database
()
const
collection
=
db
.
collection
(
'
test
'
)
const
aggregate
=
collection
.
aggregate
()
// 云函数实例复用时,此聚合实例也会复用,导致Bug
exports
.
main
=
async
function
(){
const
res
=
await
aggregate
.
match
({
a
:
1
}).
end
()
return
{
res
}
}
```
```
js
const
db
=
uniCloud
.
database
()
const
collection
=
db
.
collection
(
'
test
'
)
exports
.
main
=
async
function
(){
const
aggregate
=
collection
.
aggregate
()
// 此聚合实例分别在两个请求内使用,导致Bug
const
res1
=
await
aggregate
.
match
({
a
:
1
}).
end
()
const
res2
=
await
aggregate
.
match
({
a
:
2
}).
end
()
return
{
res1
,
res2
}
}
```
js
const
db
=
uniCloud
.
database
()
const
collection
=
db
.
collection
(
'
test
'
)
const
aggregate
=
collection
.
aggregate
()
// 云函数实例复用时,此聚合实例也会复用,导致Bug
exports
.
main
=
async
function
(){
const
res
=
await
aggregate
.
match
({
a
:
1
}).
end
()
return
{
res
}
}
```
```
js
const
db
=
uniCloud
.
database
()
const
collection
=
db
.
collection
(
'
test
'
)
exports
.
main
=
async
function
(){
const
aggregate
=
collection
.
aggregate
()
// 此聚合实例分别在两个请求内使用,导致Bug
const
res1
=
await
aggregate
.
match
({
a
:
1
}).
end
()
const
res2
=
await
aggregate
.
match
({
a
:
2
}).
end
()
return
{
res1
,
res2
}
}
```
### 聚合表达式@aggregate-expression
...
...
@@ -3396,34 +3396,35 @@ let res = await db.collection('orders').aggregate()
如需orders关联books,book再关联authors查询,可以在pipeline内再使用lookup
```
js
const
db
=
cloud
.
database
()
const
$
=
db
.
command
.
aggregate
let
res
=
await
db
.
collection
(
'
orders
'
).
aggregate
()
.
lookup
({
from
:
'
books
'
,
let
:
{
book_id
:
'
$book
'
},
pipeline
:
$
.
pipeline
()
.
match
(
$
.
expr
(
$
.
eq
([
'
$_id
'
,
'
$$book_id
'
]))
)
.
lookup
({
from
:
'
authors
'
,
let
:
{
author_id
:
'
$author
'
},
pipeline
:
$
.
pipeline
()
.
match
(
$
.
expr
(
$
.
eq
([
'
$_id
'
,
'
$$author_id
'
]))
)
.
done
(),
as
:
'
authorList
'
})
.
done
(),
as
:
'
bookList
'
,
})
.
end
()
const
db
=
cloud
.
database
()
const
dbCmd
=
db
.
command
const
$
=
db
.
command
.
aggregate
let
res
=
await
db
.
collection
(
'
orders
'
).
aggregate
()
.
lookup
({
from
:
'
books
'
,
let
:
{
book_id
:
'
$book
'
},
pipeline
:
$
.
pipeline
()
.
match
(
dbCmd
.
expr
(
$
.
eq
([
'
$_id
'
,
'
$$book_id
'
]))
)
.
lookup
({
from
:
'
authors
'
,
let
:
{
author_id
:
'
$author
'
},
pipeline
:
$
.
pipeline
()
.
match
(
dbCmd
.
expr
(
$
.
eq
([
'
$_id
'
,
'
$$author_id
'
]))
)
.
done
(),
as
:
'
authorList
'
})
.
done
(),
as
:
'
bookList
'
,
})
.
end
()
```
...
...
@@ -5312,9 +5313,9 @@ let res = await db.collection('todos').doc('doc-id').update({
#### abs
<!--
/// meta
keyword: abs,绝对值
<!--
/// meta
keyword: abs,绝对值
-->
返回一个数字的绝对值。
...
...
@@ -5366,9 +5367,9 @@ let res = await db.collection('ratings').aggregate()
#### add
<!--
/// meta
keyword: 相加,add,日期
<!--
/// meta
keyword: 相加,add,日期
-->
将数字相加或将数字加在日期上。如果数组中的其中一个值是日期,那么其他值将被视为毫秒数加在该日期上。
...
...
@@ -9536,9 +9537,9 @@ let res = await db
#### avg
<!--
/// meta
keyword: 均值
<!--
/// meta
keyword: 均值
-->
返回一组集合中,指定字段对应数据的平均值。
...
...
@@ -9934,9 +9935,9 @@ let res = await db.collection('students').aggregate()
#### sum
<!--
/// meta
keyword: 求和
<!--
/// meta
keyword: 求和
-->
计算并且返回一组字段所有数值的总和。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录