Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
程序yang
unidocs-zh
提交
3010fc6b
U
unidocs-zh
项目概览
程序yang
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录