有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
注意:
此查询仅支持V1版本数据模型方法,已不再迭代。建议您使用V2版本数据模型方法进行查询。数据模型方法V2
数据模型方法中的 where 参数支持 简单条件复杂条件 两种。本文将分别介绍两种查询的用法。

简单条件

where 简单条件模式需要传入一个对象数组,以数据模型查询 wedaGetItem 方法为例。

参数说明

参数名
说明
示例
key
数据模型字段标识
"firstname"
rel
判断条件
"eq":相等,"neq":不相等,"lt":小于,"lte":小于或等于,"gt":大于,"gte":大于或等于,"search":包含文字内容
val
判断值,由字段数据类型决定
"张" 或 123
_id
数据模型数据标识
"95f2f2a963885c8900b0a415189efab7"

用法示例

示例一

module.exports = async function (params, context) {
const result = await context.callModel({
name: 'example', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaGetItem', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
where: [{
key: "firstname",
rel: "eq",
val: "张",
}],
},
});

// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};


示例二

module.exports = async function (params, context) {
const result = await context.callModel({
name: 'example', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaGetItem', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params:{
_id:"95f2f2a963885c8900b0a415189efab7"
},
});

// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};


复杂条件

注意
当前仅 wedaGetRecords 支持复杂条件。
where 复杂条件模式同样需要传入一个对象数组。

参数说明

逻辑运算符

名称
描述
$and
使用逻辑 and 连接字段,返回与这两个字段条件匹配的数据
$or
使用逻辑 or 连接字段,返回与任一个字段条件匹配的数据

比较运算符

名称
描述
$eq
匹配等于指定值的值
$gt
匹配大于指定值的值
$gte
匹配大于或等于指定值的值
$in
匹配数组中指定的任何值
$nin
不匹配数组中指定的任何值
$lt
匹配小于指定值的值
$lte
匹配小于或等于指定值的值
$ne
匹配所有不等于指定值的值

特殊运算符

用法等同于比较运算符。
名称
描述
$search
模糊查询
$nsearch
不包含,会把 null 值查找出来
$regex
正则匹配的值
$eq-current-user
等于当前用户
$ne-current-user
不等于当前用户
$empty
数据为空
$nempty
数据不为空

特殊符号

支持关联模型查询。
名称
描述
$related
关联模型查询条件
$name
数据源标识
$relatedType
关联类型:
1:多对一
2:一对多
$relatedKey
关联字段
$empty
关联字段是否为空:
1:不为空
2:为空
$where
查询条件
多对一:A 的字段关联 B 表。 多个 A 数据关联一个 B 数据。$related 最多 join 2层。子表 join 父表。
一对多:A 的字段关联 B 表。 一个 A 数据关联多个 B 数据。父表 join 子表。

用法示例

关联查询

module.exports = async function (params, context) {
const result = await context.callModel({
name: 'example', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
methodName: 'wedaGetRecords', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
params: {
where: [{
"$and": [
{
"address": {
"$eq": "上海"
}
},
{
"$related": {
"$relatedType": 1,
"$name": "data-123mnk23",
"$relatedKey": "age", // 此字段为A表中的关联字段
"$empty": "1",
"$where": { // 此处查询条件按照B表的字段查询
"$and": [
{
"name": {
"$eq": "张三"
}
}
]
}
}
}
]
}],
},
});

// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
};


or 查询条件

{
"$or": [
{
"address": {
"$eq": "西安"
}
},
{
"address": {
"$eq": "上海"
}
}
]
}


or 和 and 混合查询条件- and 的子条件

{
"$or": [
{
"address": "武汉"
},
{
"$and": [
{
"address": {
"$eq": "上海"
}
},
{
"depName": {
"$eq": "人事部"
}
}
]
}
]
}


or 和 and 混合查询条件- or 的子条件,or 和 and 混合查询条件- 并列

{
"$and": [{
"address": "上海"
}, {
"$or": [{
"depName": {"$eq": "上海研发部"}
}, {
"depName": {"$eq": "人事部"}
}, {
"depName": {"$eq": "武汉研发部"}
}]
}]
}