数据模型CRUD
[TOC]
什么是数据模型?
数据模型通过结构化、简化和逻辑化的方式,将真实世界的复杂实体和关系转化为计算机可处理的数据表示。他有如下一些特点。
- 抽象了通用数据库Mysql或者Mongo的通用查询。
- 抽象了常见的关联关系。
- 抽象了常见的复杂实体。
功能描述
调用数据模型方法
- callModel (推荐)
callDataSource兼容callModel。
参数说明
参数名 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
name | string | 无 | 是 | 数据源标识 |
dataSourceName | string | 无 | 是 | 等价于name |
methodName | string | 无 | 是 | 数据源方法名 |
params | object | 无 | 是 | 方法参数,根据方法实际入参填写 |
methodName :支持的方法列表
- 新增:
wedaCreateV2
- 新增多条:
wedaBatchCreateV2
- 删除:
wedaDeleteV2
- 删除多条:
wedaBatchDeleteV2
- 更新:
wedaUpdateV2
- 更新多条:
wedaBatchUpdateV2
- 查询:
wedaGetItemV2
- 查询多条:
wedaGetRecordsV2
params :对应方法支持的相关参数
示例模型
学生模型
老师模型
选课模型
创建
参数说明
创建单条
入参结构
属性 | 类型 | 默认值 | 示例 | 必填 | 说明 |
---|---|---|---|---|---|
data | { [key: string]: any; } | 无 | {name: "demo"} | 是 | 对应数据源的字段结构 |
出参结构
属性 | 类型 | 默认值 | 示例 | 必填 | 说明 |
---|---|---|---|---|---|
id | string | 无 | "7L5G32U9PE" | 是 | id 为对应创建数据源数据对应的标识 |
string | 无 | "7L5G32U9PE" | 是 | Id 为对应创建数据源数据对应的标识(后续废弃 ) |
创建多条
入参结构
属性 | 类型 | 默认值 | 示例 | 必填 | 说明 |
---|---|---|---|---|---|
data | { [key: string]: any }[] | 无 | [{name: "juli"}] | 是 | 不能为空数组, 传入空对象会被忽略 |
出参结构
属性 | 类型 | 默认值 | 示例 | 说明 |
---|---|---|---|---|
idList | idList: string[] | 无 | ["7L5G32U9PE"] | idList 为对应创建数据源数据对应的标识列表 |
IdList: string[] | 无 | ["7L5G32U9PE"] | IdList 为对应创建数据源数据对应的标识列表(后续废弃 ) |
示例
创建单条
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaCreateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"foo",
age:10
},
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"id":"BH4Q75GUTA",
"Id":"BH4Q75GUTA",
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaCreateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"foo",
age:10
},
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"id": "BH47EEU864",
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
这里callDataSource 和 callModel都是等价的。这里特意举例,后续不再提到
async ({ params }) => {
const data = await $w.cloud.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaCreateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"foo",
age:10
},
}, // 数据模型方法的入参
});
console.log("请求结果", data); return data; }
### 创建多条
#### APIs示例
```javascript
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaBatchCreateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:[{
name:"foo",
age:2
},{
name:"bar",
age:10
}
],
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"idList":["BH4QX0UYM6","BH4QX0UYM7"],
"IdList":["BH4QX0UYM6","BH4QX0UYM7"],
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: "student", // 数据模型标识
methodName: "wedaBatchCreateV2",
params: {
data:[{
name:"foo",
age:2
},{
name:"bar",
age:10
}
],
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"idList": [
"BH4R1XV17N",
"BH4R1XV17P"
],
"profile": {
"requestTimeCost": 475,
"trrigerTimeCost": 475,
"resolveParamsTimecost": 0
}
}
创建一条数据并关联(多对一)
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaCreateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"lee",
age:20,
teacher_id:{"_id":"BH4R1XV17P"},
}
}
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"id":"BH4TH0G9EY",
"Id":"BH4TH0G9EY",
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'post', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaCreateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"lee",
age:20,
teacher_id:{"_id":"BH4R1XV17P"},
}
}
});
console.log("请求结果", data);
return data;
}
查看结果
{
"id": "BH47EEU864",
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
创建一条数据并关联(一对多)
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'teacher', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaCreateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"Teacher Zhang",
isMaster:true,
student_list:[{"_id":"BERN1Y59JG"}, {"_id":"BERN0LHV2Y"}],
}
}
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"id":"BH4U9NHXGU",
"Id":"BH4U9NHXGU",
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'teacher', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaCreateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"Teacher Zhang",
isMaster:true,
student_list:[{"_id":"BERN1Y59JG"}, {"_id":"BERN0LHV2Y"}],
}
}
});
console.log("请求结果", data);
return data;
}
查看结果
{
"id": "BH4U9NHXGU",
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
创建一条数据并关联(多对多)
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaCreateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"Student Zhang",
age:18,
course_id_list:[{"_id":"BH4BK0G1U4"}, {"_id":"BH4BGT241E"}],
}
}
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"id":"BH4UMKTNM6",
"Id":"BH4UMKTNM6",
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaCreateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"Student Zhang",
age:18,
course_id_list:[{"_id":"BH4BK0G1U4"}, {"_id":"BH4BGT241E"}],
}
}
});
console.log("请求结果", data);
return data;
}
查看结果
{
"id": "BH4UMKTNM6",
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
修改
- 说明:修改是增量更新。如果没有传入修改的字段的值,不会进行更新。如果传入null,则会更新为null。
- 限制:批量修改一次最多允许修改200条数据。
参数说明
修改单条
入参结构
属性 | 类型 | 默认值 | 示例 | 必填 | 说明 |
---|---|---|---|---|---|
data | { [key: string]: any; } | 无 | {name: "juli"} | 是 | 对应数据源的字段结构 |
filter | { where: FilterObject} | 无 | {filter: {where: {_id:{$eq:"foo"}}}} | 是 | 复杂查询结构 |
FilterObject
为复杂查询结构,请参考查询参数说明该方法为单条更新方法,如果使用筛选条件,筛选得到多条数据,则不能用这个方法更新
出参结构
属性 | 类型 | 默认值 | 示例 | 说明 |
---|---|---|---|---|
count | count: 0 or 1 | 无 | 1 | 变更的条数,返回非 0 值代表更新成功。 |
Count: 0 or 1 | 无 | 1 | 变更的条数,返回非 0 值代表更新成功。(后续废弃 ) |
修改多条
入参结构
属性 | 类型 | 默认值 | 示例 | 必填 | 说明 |
---|---|---|---|---|---|
data | { [key: string]: any; } | 无 | {name: "juli"} | 是 | 对应数据源的字段结构 |
filter | { where: FilterObject} | 无 | {filter: {where: {}}} | 是 | 复杂查询结构 |
FilterObject 为复杂查询结构,请参考查询参数说明
批量更新一次最多只能 更新200条
出参结构
属性 | 类型 | 默认值 | 示例 | 说明 |
---|---|---|---|---|
count | count: 0 or 1 | 无 | 1 | 变更的条数,返回非 0 值代表更新成功 |
Count: 0 or 1 | 无 | 1 | 变更的条数,返回非 0 值代表更新成功(后续废弃 ) |
示例
修改单条
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"foo",
age:12
},
filter:{
where:{
name:{$eq:"luke"}
}
}
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"count":1,
"Count":1,
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"foo",
age:12
},
filter:{
where:{
name:{$eq:"luke"}
}
}
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"count": 1,
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
修改多条
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaBatchUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"foo",
age:12
},
filter:{
where:{
name:{$eq:"luke"}
}
}
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"count":2,
"Count":2,
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaBatchUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
name:"foo",
age:12
},
filter:{
where:{
name:{$eq:"luke"}
}
}
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"count": 2,
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
修改单条数据的关联关系(多对一)
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
teacher_id:{_id:"BERMV99BBN"},
},
filter:{
where:{
name:{$eq:"foo"}
}
}
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"count":1,
"Count":1,
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
teacher_id:{_id:"BERMV99BBN"},
},
filter:{
where:{
name:{$eq:"foo"}
}
}
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"count": 1,
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
修改单条数据的关联关系(一对多)
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'teacher', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
student_list:[{_id:"BERN1Y59JG"}, {_id:"BERN0LHV2Y"}],
},
filter:{
where:{
name:{$eq:"zhang"}
}
}
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"count":1,
"Count":1,
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'teacher', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
student_list:[{_id:"BERN1Y59JG"}, {_id:"BERN0LHV2Y"}],
},
filter:{
where:{
name:{$eq:"zhang"}
}
}
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"count": 1,
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
清空单条数据的关联关系(一对多)
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'teacher', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
student_list:[],
},
filter:{
where:{
name:{$eq:"zhang"}
}
}
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"count":1,
"Count":1,
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'teacher', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
student_list:[],
},
filter:{
where:{
name:{$eq:"zhang"}
}
}
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"count": 1,
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
修改单条数据的关联关系(多对多)
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
course_id_list:[{_id:"BERN1Y59JG"}, {_id:"BERN0LHV2Y"}],
},
filter:{
where:{
name:{$eq:"Student Zhang"}
}
}
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"count":1,
"Count":1,
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
course_id_list:[{_id:"BERN1Y59JG"}, {_id:"BERN0LHV2Y"}],
},
filter:{
where:{
name:{$eq:"Student Zhang"}
}
}
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"count": 1,
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
清空单条数据的关联关系(多对多)
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
course_id_list:[],
},
filter:{
where:{
name:{$eq:"Student Zhang"}
}
}
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"count":1,
"Count":1,
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaUpdateV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
data:{
course_id_list:[],
},
filter:{
where:{
name:{$eq:"Student Zhang"}
}
}
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"count": 1,
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
删除
- 限制:批量删除一次最多允许修改200条数据。
参数说明
删除单条
入参结构
属性 | 类型 | 默认值 | 示例 | 必填 | 说明 |
---|---|---|---|---|---|
filter | { where: FilterObject} | 无 | {filter: {where: {_id:{$eq:"foo"}}}} | 是 | 复杂查询结构 |
FilterObject
为复杂查询结构,请参考查询参数说明该方法为单条删除方法,如果使用筛选条件,筛选得到多条数据,则不能用这个方法更新
出参结构
属性 | 类型 | 默认值 | 示例 | 说明 |
---|---|---|---|---|
count | count: 0 or 1 | 无 | 1 | 变更的条数,返回非 0 值代表更新成功。 |
Count: 0 or 1 | 无 | 1 | 变更的条数,返回非 0 值代表更新成功。(后续废弃 ) |
删除多条
入参结构
属性 | 类型 | 默认值 | 示例 | 必填 | 说明 |
---|---|---|---|---|---|
filter | { where: FilterObject} | 无 | {filter: {where: {}}} | 是 | 复杂查询结构 |
FilterObject 为复杂查询结构,请参考查询参数说明
批量更新一次最多只能 更新200条
出参结构
属性 | 类型 | 默认值 | 示例 | 说明 |
---|---|---|---|---|
count | count: 0 or 1 | 无 | 1 | 变更的条数,返回非 0 值代表更新成功 |
Count: 0 or 1 | 无 | 1 | 变更的条数,返回非 0 值代表更新成功(后续废弃 ) |
示例
删除单条
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaDeleteV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
filter:{
where:{
name:{$eq:"luke"}
}
}
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"count":1,
"Count":1,
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaDeleteV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
filter:{
where:{
name:{$eq:"luke"}
}
}
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"count": 1,
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
删除多条
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaBatchDeleteV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
filter:{
where:{
name:{$eq:"luke"}
}
}
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"count":2,
"Count":2,
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaBatchDeleteV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
filter:{
where:{
name:{$eq:"luke"}
}
}
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"count": 2,
"profile": {
"requestTimeCost": 694,
"trrigerTimeCost": 694,
"resolveParamsTimecost": 0
}
}
查询
- 限制:查询一次最多允许查询200条数据。
参数说明
查询单条
入参结构
属性 | 类型 | 默认值 | 示例 | 必填 | 说明 |
---|---|---|---|---|---|
filter | { where: FilterObject} | 无 | {filter: {where: {}}} | 是 | 复杂查询结构 |
select | { [key: string]: boolean } | 无 | { $master: true } | 是 | 可以指定返回本表或者关联表的字段,如果想查询本表所有字段,请使用 { $master: true } |
compatibleWithV1 | boolean | false | 否 | 对旧关联关系的兼容,下面详细介绍 | |
relateWhere | 无 | 否 | 支持对数据模型对关联表进行查询 |
出参结构
属性 | 类型 | 默认值 | 示例 | 说明 |
---|---|---|---|---|
对应数据源字段结构 | { [key: string]: any } | 无 | { name: "juli" } | 返回满足筛选条件的数据源详情 |
查询多条
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
filter | { where: FilterObject} | 无 | 是 | 复杂查询结构 |
select | { [key: string]: boolean } | 无 | 是 | { $master: true } 可以指定返回本表或者关联表的字段,如果想查询本表所有字段,请使用 { $master: true } |
getCount | boolean | false | 否 | 获取 filter 命中条件的查询条数 |
getRecords | boolean | true | 否 | 是否获取数据 |
pageSize | number | 10 | 否 | 分页大小,建议指定,如需设置为其它值,需要和pageNumber配合使用,两者同时指定才会生效 |
pageNumber | number | 1 | 否 | 分页数目 |
orderBy | {[key: string]: "asc" "desc" }[] | 无 | 否 | 排序,当前仅支持最多 3 字段排序 |
compatibleWithV1 | boolean | false | 否 | 对旧关联关系的兼容,下面详细介绍 |
relateWhere | 无 | 否 | 支持对数据模型对关联表进行查询 | |
limit | number | 无 | 否 | 限制返回的条数,如果和 pageSize 一起使用,以 limit 为准 |
offset | offset | 无 | 否 | 限制返回的偏移量,如果和 pageNumber 一起使用,以 offset 为准,注意limit要和offset一起使用。 pageSize和pageNumber要一起使用。 不可以混合使用 |
出参结构
属性 | 类型 | 默认值 | 示例 | 说明 |
---|---|---|---|---|
records | { [key: string]: any }[] | 无 | { name: "juli" } | records 内的数组为对应的数据源数据对象 |
total | number | 无 | 3 | 入参配置了 getCount 为 true 时会返回满足筛选查询条件的大小,注意,此字段不代表返回 records 的长度,可以用作页面大小的计算。当getCount 为false 的时候,不应该对此值做任何期待 |
示例
查询单条
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaGetItemV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
select : {$master : true}
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"owner":"1871099876542291970",
"createdAt":1748340164367,
"createBy":"1871099876542291970",
"updateBy":"1871099876542291970",
"_openid":"1871099876542291970",
"name":"Student Zhang",
"_id":"BH4UMKTNM6",
"age":18,
"updatedAt":1748340164367,
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaGetItemV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
select : {$master : true}
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"owner": "1871099876542291970",
"createdAt": 1748340164367,
"createBy": "1871099876542291970",
"updateBy": "1871099876542291970",
"_openid": "1871099876542291970",
"name": "Student Zhang",
"_id": "BH4UMKTNM6",
"age": 18,
"updatedAt": 1748340164367,
"profile": {
"requestTimeCost": 547,
"trrigerTimeCost": 548,
"resolveParamsTimecost": 1
}
}
查询多条
APIs示例
module.exports = async function (params, context) {
const result = await context.callModel({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaGetRecordsV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
select : {
"$master" : true
},
getCount : true,
pageSize : 10,
pageNumber : 1
}, // 数据模型方法的入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};
查看结果
{
"total":3,
"records":[
{
"owner":"1871099876542291970",
"createdAt":1748340164367,
"createBy":"1871099876542291970",
"updateBy":"1871099876542291970",
"_openid":"1871099876542291970",
"name":"Student Zhang",
"_id":"BH4UMKTNM6",
"age":18,
"updatedAt":1748340164367,
},
{
"owner":"1871099876542291970",
"createdAt":1747299013876,
"createBy":"1871099876542291970",
"updateBy":"1871099876542291970",
"_openid":"1871099876542291970",
"name":"zhang2",
"_id":"BERN1Y59JG",
"age":33,
"updatedAt":1747299013876,
},
{
"owner":"1871099876542291970",
"createdAt":1747298998990,
"createBy":"1871099876542291970",
"updateBy":"1871099876542291970",
"_openid":"1871099876542291970",
"name":"foo",
"_id":"BERN0LHV2Y",
"age":12,
"updatedAt":1748340983535,
},
],
}
可视化开发编辑器示例
请求
async ({ params }) => {
const data = await $w.cloud.callDataSource({
dataSourceName: 'student', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaGetRecordsV2', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
select : {
"$master" : true
},
getCount : true,
pageSize : 10,
pageNumber : 1
}, // 数据模型方法的入参
});
console.log("请求结果", data);
return data;
}
查看结果
{
"records": [
{
"owner": "1871099876542291970",
"createdAt": 1748340164367,
"createBy": "1871099876542291970",
"updateBy": "1871099876542291970",
"_openid": "1871099876542291970",
"name": "Student Zhang",
"_id": "BH4UMKTNM6",
"age": 18,
"updatedAt": 1748340164367
},
{
"owner": "1871099876542291970",
"createdAt": 1747299013876,
"createBy": "1871099876542291970",
"updateBy": "1871099876542291970",
"_openid": "1871099876542291970",
"name": "zhang2",
"_id": "BERN1Y59JG",
"age": 33,
"updatedAt": 1747299013876
},
{
"owner": "1871099876542291970",
"createdAt": 1747298998990,
"createBy": "1871099876542291970",
"updateBy": "1871099876542291970",
"_openid": "1871099876542291970",
"name": "foo",
"_id": "BERN0LHV2Y",
"age": 12,
"updatedAt": 1748340983535
}
],
"total": 3,
"profile": {
"requestTimeCost": 367,
"trrigerTimeCost": 368,
"resolveParamsTimecost": 1
}
}