数据库通用接口

动态表名

$db里的api的第一个参数是表名,可以是变量。

$db.insert("商品表", x, key)
$db.get("user", id/key/Q, 缓存)
$db.update(表名, id/key, 更新器, upsert)
$db.delete(table, id/key)
$db.find(["文档", "课程", "插件", "社区"], Q, O, 缓存, 回调)
$db.count([t1, t2], Q, 缓存)
$db.clear(t)

find/count接口的表名可以是数组,众触官网顶部的搜索框就是一次性从文档/课程/插件/社区搜索关键字的。
用表名开头的api更简洁直观。$db也存放取得的数据。
自建业务表可以用业务主键key代替物理主键id来读取/更新/删除。id是数值型,key字符型。

前端接口

可以直接在前端调用的接口

查询数据

表名.find(Q, O, 缓存, 回调)
$user.find(Q, O, 缓存, 回调)
$order.find(Q, O, 缓存, 回调)
$asset.find(Q, O, 缓存, 回调)

根据查询条件Query)和选项Option)检索数据。
数据返回后会执行回调表达式,$res是查询结果(result),也可以直接访问查询结果而不用$res前缀。
缓存传入0时表示放弃浏览器缓存而总是从数据库中读取,大于0时(小时数,范围: 0.1 ~ 5)指示服务器把搜索结果放入缓存,以便下次快速读取。

limit

选项O里limit时表示数据量不大,希望一次性取得所有数据,此时返回的是数据数组(前端最多1000条,后端5000);
limit = 1时只返回一条数据对象(或404);
limit > 1时表示数据量比较大,后续希望通过自定义查询/翻页进一步过滤数据,此时返回的是复合数据结构:

{
    arr: 数据数组,
    all: 多次查询结果合并后的数组, 数据表格的无限滚动会用到,
    count: 数据总数,
    Q: 查询条件,
    O: 选项,
    limit,
    skip,
    find: 再次查询的简便函数。
}

通常把返回的结果放到$v变量里,方便读取和再查/翻页。$v.变量.find(Q, O):参数Q和O会跟原Q和O浅合并(只合并第一层),如果都不填则用原Q和O重新查询(绕开前端缓存);O默认是{ skip: 0 },即从头重搜。

统计行数

表名.count(Q, 缓存)
$user.count(Q, 缓存)
$order.count(Q, 缓存)
$asset.count(Q, 缓存)
find()接口的简化,仅获取符合条件的数据条数而不拉取具体列表

清除缓存

表名.clear()
$user.clear()
$order.clear()
$asset.clear()
清除find()和count()的缓存,很少使用。get()的缓存无需手动清除

直取数据

表名.get(id/key, 缓存)
$user.get(id, 缓存)
$order.get(id, 缓存)
$asset.get(id, 缓存)

如果无参数或传入的是对象时(即查询条件Q),读取符合条件的一条数据。
缓存传入0时表示放弃前端缓存而总是从后端重新读取。

新建数据

表名.insert(x, key)
$order.insert(type, desc, total, x)

更新数据

表名.update(id/key, U, upsert)
$user.update(id, U)
$order.update(id, U)
$asset.update(id, U)
根据更新器 U(Updater)来更新数据。
当需要用表单数据全量更新(整体替换)x里的内容时使用{ x: $f.x } 更新效率更高(因为它只需要更新x这个字段就可以了而不用一个一个属性的更新),也能删除在表单中删除了的属性。
更新器在后端服务中的变量也是U

自建表可传入字符型的业务主键key代替物理主键id,此时可传入upsert(update或insert,true或者1)表示如果此key不存在则插入数据。

删除数据

表名.delete(id/key)
$order.delete(id)
$asset.delete(id)

后端接口

只能在后端服务或request事件中调用,跟前端接口基本一致,完全相同的灰色显示,未列出来的接口不可用。

新建数据

表名.insert(x, y, key)
$user.insert(phone, 密码, x, y)
$order.insert(type, desc, total, x, y)

直取数据

表名.get(id/key)
$user.get(id)
$order.get(id)

查询数据

表名.find(Q, O, 缓存)
$user.find(Q, O, 缓存)
$order.find(Q, O, 缓存)

统计行数

表名.count(Q, 缓存)
$user.count(Q, 缓存)
$order.count(Q, 缓存)

更新数据

表名(id/key, U, upsert)
$user.update(id, U)
$order.update(id, U)

删除数据

表名.delete(id/key)
$user.delete(id)
$order.delete(id)

清除缓存

表名.clear()
$user.clear()
$order.clear()
$asset.clear()

由众触低代码平台生成和驱动