云开发入门教程-多条件查询

一般我们的后端方法需要接收参数进行运算或者查询数据库,运算结束后会将结果进行返回。在低码中是使用自定义连接器来完成后端方法的编制。
在这里插入图片描述
单条件查询比较好实现,我们只需要传入入参,在方法中获取入参就可以

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

那如果查询条件是多个改如何写后端方法呢?先需要添加多个入参,比如我们这里想查询商品在售的和价格大于10的商品列表。需要两个查询条件我们就在入参那增加两个
在这里插入图片描述
自定义代码里如果需要接收多个条件需要用到查询指令,如果这两个条件需要同时满足,我们就使用and。如果只需满足一个我们就使用or

同时满足

module.exports = async function (params, context) {
    
    
  const db = context.database
  const _ = db.command
  const collection = db.collection("lcap-data-26caupXt1-product_vfxwrnn-preview")
  const result = await collection.where(_.and([{
    
    
    price:_.gt(params.price)
  },{
    
    
    status:params.status
  }])).get()
  //const result = await context.database.collection('数据库集合名称').get();

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

构造同时满足是,先需要构造查询指令

_.and

表示同时满足的意思

里边需要传入一个数组,数组里的元素是对象,每个对象是一个查询条件,我们这里使用

_.gt

表示大于的意思

如果是相等可以直接使用冒号或者_.eq都可以

只满足一个

如果要构造只满足一个,我们只需要将and替换成or即可

module.exports = async function (params, context) {
    
    
  const db = context.database
  const _ = db.command
  const collection = db.collection("lcap-data-26caupXt1-product_vfxwrnn-preview")
  const result = await collection.where(_.or([{
    
    
    price:_.gt(params.price)
  },{
    
    
    status:params.status
  }])).get()
  //const result = await context.database.collection('数据库集合名称').get();

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

总结

本篇我们介绍了多条件中且和或的关系,在日常开发中这两种关系还是非常常见的,属于必须掌握的知识点,我们下期再见。

猜你喜欢

转载自blog.csdn.net/u012877217/article/details/126478560
今日推荐