$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)指示服务器把搜索结果放入缓存,以便下次快速读取。
选项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()