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

docs: uniCloud fieldRules

上级 808689d2
......@@ -566,7 +566,7 @@ jql支持两种类型的查询条件,以下内容有助于理解两种的区
where内还支持使用云端环境变量,详情参考:[云端环境变量](uniCloud/clientdb.md?id=variable)
#### 简单查询条件
#### 简单查询条件@simple-where
简单查询条件包括以下几种,对应着db.command下的各种[操作符](https://uniapp.dcloud.net.cn/uniCloud/cf-database?id=dbcmd)以及不使用操作符的查询如`where({a:1})`
......@@ -587,7 +587,7 @@ where内还支持使用云端环境变量,详情参考:[云端环境变量](
上述写法的查询语句可以在权限校验阶段与schema内配置的permission进行一次对比校验,如果校验通过则不会再查库进行权限校验。
#### 复杂查询条件
#### 复杂查询条件@complex-where
> HBuilderX 3.1.0起支持
......@@ -660,6 +660,32 @@ res = {
}
```
在查询条件时也可以使用`new Date()`来获取一个日期对象。
例:数据表test内有以下数据
```js
{
"_id": "1",
"title": "t1",
"deadline": 1611998723948
}
{
"_id": "2",
"title": "t2",
"deadline": 1512312311231
}
```
使用下面的写法可以查询deadline小于当前时间(云函数内的时间)的字段
```js
const db = uniCloud.database()
const res = await db.collection('test')
.where('deadline < new Date().getTime()') // 暂不支持使用Date.now(),后续会支持
.get()
```
**注意**
- 使用了复杂查询条件时不可以使用正则查询
......
......@@ -743,9 +743,10 @@ fieldRules内配置如下,数组内可以配置多个rule,每个rule都有ru
rule表达式,是一组js,返回值必须为true或false。返回false则触发提示错误,错误提示显示的是errorMessage的内容。
rule表达式里支持:
1. 字段名称
2. 字段的聚合运算方法
3. js语法和基本内置对象,如new date(),以及三目运算符、正则表达式
3. js语法和基本内置对象,一般来说仅需使用`new Date()`来获取云端的时间,暂不支持`Date.now()、Math`。需要注意的是不同于聚合运算符,js内置方法不可传入数据库字段作为参数
上述配置中,`end_date`为字段名称。schema内也支持写字段操作方法,如add方法。
......@@ -782,6 +783,7 @@ rule表达式里支持:
- 新增/更新数据时会校验所有新增/更新字段相关联的fieldRules。如上述规则中,如果更新`end_date`字段或者`create_date`字段均会触发校验
- 新增数据时不需要查库进行校验,更新数据时需要进行一次查库校验(有多条fieldRules时也是一次)
- fieldRules内不支持使用正则
#### 4. errorMessage自定义错误提示@errormessage
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册