上一节我们利用自定义连接器实现了查询功能,但是我们是查询全部数据。在实际的业务场景中还需要按照查询条件进行查询,这就用到了数据库的查询指令
获取指令
我们再定义一个方法,来给查询增加查询条件
要想使用查询指令,需要先进行定义
const _ = db.command
相等比较
比较常用的就是等值比较,比如我们希望查询检测点数据源的名称等于检测点一的数据,那我们就需要构造查询条件。先去数据源找到需要作为查询条件的字段,复制字段标识
然后需要在自定义连接器的方法入参那添加我们的入参
入参构造好之后,我们就需要改造一下我们的查询方法,增加查询条件。查询条件需要调用where方法,并且传入参数对象
module.exports = async function (params, context) {
const db = context.database
const _ = db.command
const collection = db.collection("lcap-data-2hhicMDfJ-hsjcd_avb5fh8-preview")
const result = await collection.where({
mc:params.mc
}).get()
//const result = await context.database.collection('数据库集合名称').get();
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return result;
}
where方法的参数对象里,左侧是我们数据源的字段标识,右侧是参数值。参数值需要通过params获取。初学者经常在这个地方转不过弯来,既然准备入编程这个行,有些概念还是必须要会的。
方法构造好之后我们就可以进行测试了,点击方法测试。和上一节不同的是,我们这里提交参数默认已经构造好了参数,我们只需要把参数值替换就可以
替换成需要的值之后我们点击方法测试就可以查询到结果
小程序中使用
自定义连接器设置查询条件后,还需要在小程序中应用。我们可以利用表单输入组件作为查询条件
可以先定义两个变量,一个用来调用自定义连接器的方法,一个用来保存查询条件输入的值
我们可以给表单输入组件增加一个值改变的事件,赋值给我们的变量
测试发现模型变量并不会因为输入值的改变而自动更新,那我们就需要在值改变之后继续调用一下数据源,将查询最新的结果重新赋值给模型变量才可以
总结
我们本篇带着大家实现了等值查询,后边我们继续介绍一下其他的查询指令