跳到主要内容

数据模型CRUD

[TOC]

什么是数据模型?

数据模型通过​​结构化、简化和逻辑化​​的方式,将真实世界的复杂实体和关系转化为计算机可处理的数据表示。他有如下一些特点。

  1. 抽象了通用数据库Mysql或者Mongo的通用查询。
  2. 抽象了常见的关联关系。
  3. 抽象了常见的复杂实体。

了解数据模型

功能描述

调用数据模型方法

  1. callModel (推荐)
  2. callDataSource 兼容callModel。

参数说明

参数名类型默认值必填说明
namestring数据源标识
dataSourceNamestring等价于name
methodNamestring数据源方法名
paramsobject方法参数,根据方法实际入参填写

methodName :支持的方法列表

  • 新增wedaCreateV2
  • 新增多条wedaBatchCreateV2
  • 删除wedaDeleteV2
  • 删除多条wedaBatchDeleteV2
  • 更新wedaUpdateV2
  • 更新多条wedaBatchUpdateV2
  • 查询wedaGetItemV2
  • 查询多条wedaGetRecordsV2

params :对应方法支持的相关参数

示例模型

学生模型 student

老师模型 teacher

选课模型 course

创建

参数说明

创建单条

入参结构

属性类型默认值示例必填说明
data{ [key: string]: any; }{name: "demo"}对应数据源的字段结构

出参结构

属性类型默认值示例必填说明
idstring "7L5G32U9PE"id 为对应创建数据源数据对应的标识
Idstring "7L5G32U9PE"Id 为对应创建数据源数据对应的标识(后续废弃

创建多条

入参结构

属性类型默认值示例必填说明
data{ [key: string]: any }[][{name: "juli"}]不能为空数组, 传入空对象会被忽略

出参结构

属性类型默认值示例说明
idListidList: string[]["7L5G32U9PE"]idList 为对应创建数据源数据对应的标识列表
IdListIdList: 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 为复杂查询结构,请参考查询参数说明

该方法为单条更新方法,如果使用筛选条件,筛选得到多条数据,则不能用这个方法更新

出参结构

属性类型默认值示例说明
countcount: 0 or 11变更的条数,返回非 0 值代表更新成功。
CountCount: 0 or 11变更的条数,返回非 0 值代表更新成功。(后续废弃

修改多条

入参结构

属性类型默认值示例必填说明
data{ [key: string]: any; }{name: "juli"}对应数据源的字段结构
filter{ where: FilterObject}{filter: {where: {}}}复杂查询结构

FilterObject 为复杂查询结构,请参考查询参数说明

批量更新一次最多只能 更新200条

出参结构

属性类型默认值示例说明
countcount: 0 or 11变更的条数,返回非 0 值代表更新成功
CountCount: 0 or 11变更的条数,返回非 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 为复杂查询结构,请参考查询参数说明

该方法为单条删除方法,如果使用筛选条件,筛选得到多条数据,则不能用这个方法更新

出参结构

属性类型默认值示例说明
countcount: 0 or 11变更的条数,返回非 0 值代表更新成功。
CountCount: 0 or 11变更的条数,返回非 0 值代表更新成功。(后续废弃

删除多条

入参结构

属性类型默认值示例必填说明
filter{ where: FilterObject}{filter: {where: {}}}复杂查询结构

FilterObject 为复杂查询结构,请参考查询参数说明

批量更新一次最多只能 更新200条

出参结构

属性类型默认值示例说明
countcount: 0 or 11变更的条数,返回非 0 值代表更新成功
CountCount: 0 or 11变更的条数,返回非 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 }
compatibleWithV1booleanfalse对旧关联关系的兼容,下面详细介绍
relateWhere支持对数据模型对关联表进行查询

出参结构

属性类型默认值示例说明
对应数据源字段结构{ [key: string]: any }{ name: "juli" }返回满足筛选条件的数据源详情

查询多条

属性类型默认值必填说明
filter{ where: FilterObject}复杂查询结构
select{ [key: string]: boolean }{ $master: true } 可以指定返回本表或者关联表的字段,如果想查询本表所有字段,请使用 { $master: true }
getCountbooleanfalse获取 filter 命中条件的查询条数
getRecordsbooleantrue是否获取数据
pageSizenumber10分页大小,建议指定,如需设置为其它值,需要和pageNumber配合使用,两者同时指定才会生效
pageNumbernumber1分页数目
orderBy{[key: string]: "asc" "desc" }[]排序,当前仅支持最多 3 字段排序
compatibleWithV1booleanfalse对旧关联关系的兼容,下面详细介绍
relateWhere支持对数据模型对关联表进行查询
limitnumber限制返回的条数,如果和 pageSize 一起使用,以 limit 为准
offsetoffset限制返回的偏移量,如果和 pageNumber 一起使用,以 offset 为准,注意limit要和offset一起使用。 pageSize和pageNumber要一起使用。 不可以混合使用

出参结构

属性类型默认值示例说明
records{ [key: string]: any }[]{ name: "juli" }records 内的数组为对应的数据源数据对象
totalnumber3入参配置了 getCounttrue 时会返回满足筛选查询条件的大小,注意,此字段不代表返回 records 的长度,可以用作页面大小的计算。当getCountfalse的时候,不应该对此值做任何期待

示例

查询单条

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
}
}

查询关联关系

如何使用关联关系

使用复杂查询

如何使用复杂查询