腾讯云微搭低代码 数据模型方法

腾讯云微搭低代码的数据源提供了数据模型,开发者可以使用 context.callModel 方法来操作数据模型,具体模型方法包括:新增 wedaCreate、新增多条 wedaBatchCreate、删除 wedaDelete、批量删除 wedaBatchDelete、更新 wedaUpdate、批量更新 wedaBatchUpdate、查询 wedaGetItem、查询列表 wedaGetRecords。

相关产品
腾讯云微搭低代码 产品页,含版本规格、价格与购买入口。

这篇以如下数据模型为例,说明数据模型方法的使用,示例代码为 APIs 中的自定义代码。

注意:说明:

注意:关于如何在编辑器中使用这些方法,请参见 Query 数据查询介绍。

以下示例代码均为 APIs 自定义代码中数据模型的使用方式,更多用法请参见 APIs 自定义代码。

一、新增 wedaCreate

添加一条记录。

二、入参说明

新增方法的输入参数为数据模型全部的非系统字段,例如:name、age 等。

{ "name": "张三", "age": 15}

三、出参说明

字段名称 字段标识 数据类型 说明
新记录的 ID _id 文本 创建成功的数据标识

{ "_id": "16db756f62d7c0870b8caa2a39d33dcb"}

四、使用示例

module.exports = async function (params, context) { const result = await context.callModel({ name: 'example', // 数据模型标识,可以前往「数据源 – 数据模型」列表页查看 methodName: 'wedaCreate', // 数据模型方法标识,支持的方法可以前往「数据源 – 数据模型」的任一数据模型详情页查看当前模型支持的方法 params: { lastname: "张", firstname: "三", price: 15, amount: 20, }, // 数据模型方法的入参 }); // 在这里返回这个方法的结果,需要与出参定义的结构映射 return result;};

五、新增多条 wedaBatchCreate

新增多条记录。

六、入参说明

字段名称 字段标识 数据类型 是否必填 说明
数据内容 records 对象数组 是 待新增的多条数据

{ "records": [ { "name": "张三", "age": 15 } ]}

七、出参说明

字段名称 字段标识 数据类型 说明
新记录的 ID 数组 ids 文本数组 创建成功的数据标识

{ "ids": ["16db756f62d7c0870b8caa2a39d33dcb"]}

八、使用示例

module.exports = async function (params, context) { const result = await context.callModel({ name: 'example', // 数据模型标识,可以前往「数据源 – 数据模型」列表页查看 methodName: 'wedaBatchCreate', // 数据模型方法标识,支持的方法可以前往「数据源 – 数据模型」的任一数据模型详情页查看当前模型支持的方法 params:{ records:[{ lastname: "张", firstname: "三", price: 15, amount: 20, }] },// 数据模型方法的入参 }); // 在这里返回这个方法的结果,需要与出参定义的结构映射 return result;};

九、删除 wedaDelete

删除一条指定数据标识的记录。

十、入参说明

字段名称 字段标识 数据类型 是否必填 说明
数据标识 _id 文本 是 待删除的记录数据标识

{ "_id": "16db756f62d7c0870b8caa2a39d33dcb"}

十一、出参说明

字段名称 字段标识 数据类型 说明
删除的记录条数 deleted 数字 成功删除的记录条数

{ "deleted": 1}

十二、使用示例

module.exports = async function (params, context) { const result = await context.callModel({ name: 'example', // 数据模型标识,可以前往「数据源 – 数据模型」列表页查看 methodName: 'wedaDelete', // 数据模型方法标识,支持的方法可以前往「数据源 – 数据模型」的任一数据模型详情页查看当前模型支持的方法 params: { _id: "84f7894263706d0900950bc52687737f" }, // 数据模型方法的入参 }); // 在这里返回这个方法的结果,需要与出参定义的结构映射 return result;};

十三、批量删除 wedaBatchDelete

根据条件删除多条记录。

十四、入参说明

字段名称 字段标识 数据类型 是否必填 说明
查询条件 where 对象数组 否 匹配的查询条件
字段名称 where[].key 文本 是 模型字段标识
关系 where[].rel 文本 是 判断关系。可选值: "eq"表示相等,"neq"表示不相等,"lt"表示小于,"lte"表示小于或等于,"gt"表示大于,"gte"表示大于或等于,"search"表示包含文字内容
值 where[].val – 是 判断值。根据字段类型写入不同的值

{ "where": [ { "key": "name", "rel": "eq", "val": "张三" } ]}

十五、出参说明

字段名称 字段标识 数据类型 说明
删除的记录条数 deleted 数字 成功删除的记录条数

十六、使用示例

module.exports = async function (params, context) { const result = await context.callModel({ name: 'example', // 数据模型标识,可以前往「数据源 – 数据模型」列表页查看 methodName: 'wedaBatchDelete', // 数据模型方法标识,支持的方法可以前往「数据源 – 数据模型」的任一数据模型详情页查看当前模型支持的方法 params: { where: [{ key: "firstname", rel: "eq", // 可选值有: eq(相等) neq(不相等) lt(小于) lte(小于或等于) gt(大于) gte(大于或等于) search(包含文字内容) val: "张", }], }, // 数据模型方法的入参 }); // 在这里返回这个方法的结果,需要与出参定义的结构映射 return result;};

十七、更新 wedaUpdate

更新一条指定数据标识的记录。

十八、入参说明

字段名称 字段标识 数据类型 是否必填 说明
数据标识 _id 文本 是 待更新记录的数据标识

{ "_id": "16db756f62d7c0870b8caa2a39d33dcb", "name": "张三", "age": 15}

十九、出参说明

字段名称 字段标识 数据类型 说明
新记录的 ID 数组 ids 文本数组 创建成功的数据标识

{ "ids": ["16db756f62d7c0870b8caa2a39d33dcb"]}

20、使用示例

module.exports = async function (params, context) { const result = await context.callModel({ name: 'example', // 数据模型标识,可以前往「数据源 – 数据模型」列表页查看 methodName: 'wedaUpdate', // 数据模型方法标识,支持的方法可以前往「数据源 – 数据模型」的任一数据模型详情页查看当前模型支持的方法 params: { _id: "84f7894263706d0900950bc52687737f", // 需要更新的记录标识 lastname: "黄", // 更新后的值 }, }); // 在这里返回这个方法的结果,需要与出参定义的结构映射 return result;};

21、批量更新 wedaBatchUpdate

根据条件更新多条记录。

22、入参说明

字段名称 字段标识 数据类型 是否必填 说明
查询条件 where 对象数组 是 匹配的查询条件
字段名称 where[].key 文本 是 模型字段标识
关系 where[].rel 文本 是 判断关系。可选值: "eq"表示相等,"neq"表示不相等,"lt"表示小于,"lte"表示小于或等于,"gt"表示大于,"gte"表示大于或等于,"search"表示包含文字内容
值 where[].val – 是 判断值。根据字段类型写入不同的值
更新数据 record 对象 是 使用该数据,更新全部匹配条件的记录

{ "where": [ { "key": "name", "rel": "eq", "val": "张三" } ], "record": { "name": "张三", "age": 12 }}

23、出参说明

字段名称 字段标识 数据类型 说明
更新的记录条数 updated 数字 更新成功的数据标识

{ "updated": 1}

24、使用示例

匹配 where 条件的记录都更新为 record 的内容。

module.exports = async function (params, context) { const result = await context.callModel({ name: 'example', // 数据模型标识,可以前往「数据源 – 数据模型」列表页查看 methodName: 'wedaBatchUpdate', // 数据模型方法标识,支持的方法可以前往「数据源 – 数据模型」的任一数据模型详情页查看当前模型支持的方法 params: { record: { lastname: "黄", // 更新后的值 }, where: [{ key: "firstname", rel: "eq", // 可选值有: eq(相等) neq(不相等) lt(小于) lte(小于或等于) gt(大于) gte(大于或等于) search(包含文字内容) val: "张", }], }, }); // 在这里返回这个方法的结果,需要与出参定义的结构映射 return result;};

25、查询 wedaGetItem

查询一条指定数据标识的记录。

26、入参说明

字段名称 字段标识 数据类型 是否必填 说明
查询条件 where 对象数组 否 匹配的查询条件
字段名称 where[].key 文本 是 模型字段标识
关系 where[].rel 文本 是 判断关系。可选值: "eq"表示相等,"neq"表示不相等,"lt"表示小于,"lte"表示小于或等于,"gt"表示大于,"gte"表示大于或等于,"search"表示包含文字内容
值 where[].val – 是 判断值。根据字段类型写入不同的值

{ "where": [ { "key": "name", "rel": "eq", "val": "张三" } ]}

27、出参说明

出参为数据模型字段,例如:name、age 等。

{ "_id": "16db756f62d7c0870b8caa2a39d33dcb", "name": "张三", "age": 15}

28、使用示例

根据查询条件返回一条匹配的记录。

module.exports = async function (params, context) { const result = await context.callModel({ name: 'example', // 数据模型标识,可以前往「数据源 – 数据模型」列表页查看 methodName: 'wedaGetItem', // 数据模型方法标识,支持的方法可以前往「数据源 – 数据模型」的任一数据模型详情页查看当前模型支持的方法 params: { _id: "84f7894263706d0900950bc52687737f", // 指定某个具体的数据标识 where: [{ // 或根据指定的条件 key: "firstname", rel: "eq", // 可选值有: eq(相等) neq(不相等) lt(小于) lte(小于或等于) gt(大于) gte(大于或等于) search(包含文字内容) val: "张", }], }, }); // 在这里返回这个方法的结果,需要与出参定义的结构映射 return result;};

29、查询列表 wedaGetRecords

根据条件以分页列表格式返回多条记录。

30、入参说明

字段名称 字段标识 数据类型 是否必填 说明
查询条件 where 对象数组 否 匹配的查询条件
字段名称 where[].key 文本 是 模型字段标识
关系 where[].rel 文本 是 判断关系。可选值: "eq"表示相等,"neq"表示不相等,"lt"表示小于,"lte"表示小于或等于,"gt"表示大于,"gte"表示大于或等于,"search"表示包含文字内容
值 where[].val – 是 判断值。根据字段类型写入不同的值
页码 pageNo 数字 否 从1开始
每页数 pageSize 数字 否 每次查询的最大记录数,默认为10,如需设置为其它值,需要和 pageNo 配合使用,两者同时指定才会生效
排序字段名称 orderBy 文本 否 按某个字段进行排序
排序方式 orderType 文本 否 "desc" 表示降序,"asc"表示升序

{ "where": [ { "key": "name", "rel": "eq", "val": "张三" } ], "pageNo": 1, "pageSize": 20, "orderBy": "age", "orderType": "desc",}

31、出参说明

字段名称 字段标识 数据类型 说明
记录总条数 total 数字 所有匹配条件的总条数
页码 pageNo 数字 当前页码
每页记录数 pageSize 数字 每次查询的最大记录数
记录列表 records 对象数组 查询的结果列表

{ "records": [ { "name": "张三", "age": 2 } ], "total": 100, "pageNo": 1, "pageSize": 20}

32、使用示例

根据查询条件分页返回匹配的记录。

module.exports = async function (params, context) { const result = await context.callModel({ name: 'example', // 数据模型标识,可以前往「数据源 – 数据模型」列表页查看 methodName: 'wedaGetRecords', // 数据模型方法标识,支持的方法可以前往「数据源 – 数据模型」的任一数据模型详情页查看当前模型支持的方法 params: { pageNo: 1, pageSize: 10, orderBy: "firstname", orderType: "desc", where: [{ // 或根据指定的条件 key: "firstname", rel: "eq", // 可选值有: eq(相等) neq(不相等) lt(小于) lte(小于或等于) gt(大于) gte(大于或等于) search(包含文字内容) val: "张", }], }, }); // 在这里返回这个方法的结果,需要与出参定义的结构映射 return result;};

赞 (0)
上一篇 4天前
下一篇 4天前