这篇以如下数据模型为例,说明数据模型方法的使用,示例代码为 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;};