提交 61c66c4f 编写于 作者: 雪洛's avatar 雪洛

docs: uni-clientDB rename

上级 7b0a10a8
......@@ -15,8 +15,7 @@
* [云存储](uniCloud/storage.md)
* 扩展能力
* [uni-id](uniCloud/uni-id.md)
* [uni-curd](uniCloud/uni-curd.md)
* [uni-account](uniCloud/uni-account.md)
* [uni-clientDB](uniCloud/uni-curd.md)
* [unipay](uniCloud/unipay.md)
* [发送短信](uniCloud/send-sms.md)
* [前端网页托管](uniCloud/hosting.md)
......
......@@ -20,6 +20,8 @@
本项目包括云函数和客户端两部分,需要搭配使用,具体请参考下面文档。
插件地址:[https://ext.dcloud.net.cn/plugin?id=2314](https://ext.dcloud.net.cn/plugin?id=2314)
**示例项目使用须知**
1. 下载示例项目后选择服务空间
......@@ -98,45 +100,45 @@ uniCloud.callFunction({
**使用示例**
```js
'use strict';
'use strict';
const uniCurd = require('uni-curd')
const db = uniCloud.database()
const dbCmd = db.command
const dbCmd = db.command
exports.main = async (event, context) => {
// 这里可以判断用户身份给予不同权限,例如:可以从event里拿到uni-id的token,根据token和客户端参数决定查询权限限制
try {
const res = await uniCurd({
// 这里可以判断用户身份给予不同权限,例如:可以从event里拿到uni-id的token,根据token和客户端参数决定查询权限限制
try {
const res = await uniCurd({
command: event.command,
pagination: event.pagination,
rules: {
pagination: event.pagination,
rules: {
list: {
// CRUD权限
create: false,
read: true,
update: false,
delete: false,
// 是否允许使用聚合
aggregate: false,
// 是否允许使用联表查询,联表查询时blockedField不会对被连接的集合生效
lookup: false,
// 使用聚合时blockField不会覆盖客户端的project,而是在聚合第一阶段插入project,不使用聚合时会在最后阶段插入一个field(会覆盖客户端的field方法)
blockedField: ['extra'],
// 不使用聚合时mixinCondition会在没有where的时候在collection方法之后插入where,有where时会跟where条件进行合并,取原条件且mixinCondition。使用聚合时会在第一阶段插入match使用混入的条件,如果有blockedField会插入在blockedField对应的project之前
// CRUD权限
create: false,
read: true,
update: false,
delete: false,
// 是否允许使用聚合
aggregate: false,
// 是否允许使用联表查询,联表查询时blockedField不会对被连接的集合生效
lookup: false,
// 使用聚合时blockField不会覆盖客户端的project,而是在聚合第一阶段插入project,不使用聚合时会在最后阶段插入一个field(会覆盖客户端的field方法)
blockedField: ['extra'],
// 不使用聚合时mixinCondition会在没有where的时候在collection方法之后插入where,有where时会跟where条件进行合并,取原条件且mixinCondition。使用聚合时会在第一阶段插入match使用混入的条件,如果有blockedField会插入在blockedField对应的project之前
mixinCondition: {
time: dbCmd.gt(1000000000000)
},
// 更多用法请参考下方参数说明文档
}
}
})
return res
// 更多用法请参考下方参数说明文档
}
}
})
return res
} catch (e) {
return {
code: 10001,
msg: e.message
}
}
}
}
};
```
......@@ -161,13 +163,13 @@ exports.main = async (event, context) => {
rules下可以对不同的集合配置不同的权限,比如以下规则代表”集合list允许插入,集合goods允许更新“
```js
{
list: {
create: true,
{
list: {
create: true,
},
goods: {
update: true
}
}
}
```
......@@ -196,29 +198,29 @@ rules下可以对不同的集合配置不同的权限,比如以下规则代表
回调参数如下:
```js
{
{
state: {
useAggregate, // 是否使用了聚合
useLookup, // 是否使用了联表查询
type, // 操作类型,可能的值为create、read、update、delete
collection, // 当前集合名
methodList // 使用到的方法列表
},
},
stage: {
method, // 当前阶段方法名
args // 当前阶段方法参数
},
exec // 已经组装的查询指令
},
exec // 已经组装的查询指令
}
```
回调方法中可以通过返回结果修改数据库指令,例如以下示例在skip之后插入一个limit
```js
afterStageAppend: function({
state,
stage,
exec
afterStageAppend: function({
state,
stage,
exec
}) {
if(stage.method === 'skip') {
return exec.limit(1)
......@@ -238,4 +240,4 @@ afterStageAppend: function({
+ 使用聚合时会在第一阶段插入match使用混入的条件,如果有blockedField会插入在blockedField对应的project之前
- 关于联表查询
+ 连接的集合也会受所配置的权限规则中对应集合规则限制,主要是read,目前连接的集合不会受blockedField限制
\ No newline at end of file
+ 连接的集合也会受所配置的权限规则中对应集合规则限制,主要是read,目前连接的集合不会受blockedField限制
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册