|
|
@@ -24,29 +24,45 @@ CREATE DB IF NOT EXISTS msqldb (
|
|
|
create class if not exists /mdb () with namespace='mdb'
|
|
|
;
|
|
|
|
|
|
+-- 固定映射(指定固定条件或无条件映射数据),
|
|
|
+-- 当主类中没有数据时,查询时自动赋值默认对象属性:
|
|
|
-- class: 类名/mdb/dba1,
|
|
|
-- id: 组合映射表主键为字符串,
|
|
|
-- name: 与id相同,
|
|
|
-- day: 当前日期,
|
|
|
-- vtime: 当前时间
|
|
|
+-- 映射表查询结果按 id 匹配关联主对象
|
|
|
+-- 当主类中存在数据时,直接按主对象 id 与 组合映射表主键得到的字符串 进行匹配关联主对象
|
|
|
-- rdb 输出为二维数组,兼容 promdb 等已有 bucket 类型
|
|
|
+-- rdb 数据 与 id 一一对应,实际 二维数组中的第一维 最多只有 一个元素
|
|
|
-- 支持 bucket 链式表达式
|
|
|
create class if not exists /mdb/dba1 (
|
|
|
rdb bucket {
|
|
|
- -- 全表映射
|
|
|
+ -- 必须:固定映射
|
|
|
"type" : "msqldb",
|
|
|
- -- 指定表名
|
|
|
- "table" : "T__matrix__test___422YX2FPSXSLVDA9"
|
|
|
+ -- 必须:指定表名
|
|
|
+ -- TODO 前期 指定结构化查询信息,方便实现,后期可解析 sql 语句,方便应用开发
|
|
|
+ "table" : "T__matrix__test___422YX2FPSXSLVDA9",
|
|
|
+ -- 可选:字段信息,不指定或指定空数组时,选择全部字段,相当于 "*"
|
|
|
+ "fields": ["字符串", "大整数", "整数", "浮点", {"name":"双浮点","asname":"vdouble"}],
|
|
|
+ -- 可选:固定条件信息,不指定条件或指定空对象时,按无条件处理
|
|
|
+ -- 注意:固定条件指的是不包含变量条件,即与主对象中的字段不存在任何指定关系
|
|
|
+ "conds" : {
|
|
|
+ "and": [{ -- 多条件组合
|
|
|
+ "like": ["文本","%合法%"]},{ -- 常量条件
|
|
|
+ "or": [{
|
|
|
+ "=": ["name", "7884235075310994619"]},{ -- 常量条件
|
|
|
+ "=": ["字符串", "*abc*"]},{
|
|
|
+ "between": ["strftime('%Y-%m-%d',cast(day as integer)/1000.0+28800,'unixepoch')", "2026-01-01", "2026-10-10"]}]}]}, -- sql函数支持,不校验参数语法
|
|
|
+ -- 可选:默认按主键顺序排序
|
|
|
+ "orderby" : ["字符串", {"name":"vdouble","reverse":true}] -- 指定排序,保证 last row 输出稳定结果
|
|
|
+ -- TODO "groupby","having"
|
|
|
},
|
|
|
) with nickname='dba1'
|
|
|
;
|
|
|
|
|
|
-- 条件映射
|
|
|
+-- 主类中需要有数据,按指定条件映射数据,条件与主类数据有关联
|
|
|
-- xrdb 输出为二维数组,兼容 promdb 等已有 bucket 类型,输出字段顺序与 bucket 定义的字段顺序一致
|
|
|
-- xrdb 数据 与 id 为多对一关系,默认输出第一条记录,需要在 bucket 定义时明确数据唯一排序,否则数据输出可能不稳定
|
|
|
-- 支持 bucket 链式表达式
|
|
|
@@ -58,19 +74,23 @@ create class if not exists /mdb/dba2 (
|
|
|
xdouble double,
|
|
|
xdate date,
|
|
|
xrdb bucket {
|
|
|
- -- 条件映射
|
|
|
+ -- 必须:映射名
|
|
|
"type" : "msqldb",
|
|
|
- -- 指定结构化查询信息表、字段、条件
|
|
|
- -- TODO 后期可解析 sql 语句,方便应用开发
|
|
|
+ -- 必须:指定表名
|
|
|
+ -- TODO 前期 指定结构化查询信息,方便实现,后期可解析 sql 语句,方便应用开发
|
|
|
"table" : "T__matrix__test___422YX2FPSXSLVDA9",
|
|
|
+ -- 可选:字段信息,不指定或指定空数组时,选择全部字段,相当于 "*"
|
|
|
"fields": ["字符串", "大整数", "整数", "浮点", {"name":"双浮点","asname":"vdouble"}],
|
|
|
+ -- 必须:带有变量的条件信息
|
|
|
+ -- 变量指的是主类字段,以 json对象 形式表示,{"field":"xvarchar"}
|
|
|
"conds" : {
|
|
|
"and": [{ -- 多条件组合
|
|
|
- "like": ["_tokens","%/mtest/%"]},{ -- 常量条件
|
|
|
+ "like": ["文本","%合法%"]},{ -- 常量条件
|
|
|
"or": [{
|
|
|
- "=": ["name", {"field":"xvarchar"}]},{ -- 变量条件
|
|
|
+ "=": ["name", {"field":"xvarchar"}]},{ -- 变量条件,条件中的字段对象指的是主类字段
|
|
|
"=": ["字符串", {"field":"xvarchar"}]},{
|
|
|
- "between": ["strftime('%Y-%m-%d',cast(day as integer)/1000.0+28800,'unixepoch')", "2026-01-01", {"field":"xdate"}]}]}]}, -- sql函数支持
|
|
|
+ "between": ["strftime('%Y-%m-%d',cast(day as integer)/1000.0+28800,'unixepoch')", "2026-01-01", {"field":"xdate"}]}]}]}, -- sql函数支持,不校验参数语法
|
|
|
+ -- 可选:默认按主键顺序排序
|
|
|
"orderby" : ["字符串", {"name":"vdouble","reverse":true}] -- 指定排序,保证 last row 输出稳定结果
|
|
|
-- TODO "groupby","having"
|
|
|
} "rdb test",
|