html52.com
我爱小程序-开发者交流社区

云函数的数据库语句拼装问题?

为了构建一个比较灵活的数据数据库操作云函数,可以通过前端传过来的参数灵活拼装查询语句。

首先,已被注释的是现在可用的代码,但对于后续的扩展性还不够好,比如增加排序等参数。

我尝试用以下方法来拼装,打印GET可以看到doc、field等条件已经设置了。

但返回get结果时,发现条件无效,返回的是数据库全部的数据。

不知道什么原因?各位大佬是否有解决办法,谢谢。

// 查询
async function get(event) {
 
  // 获得数据
  const {
    collection,
    doc,
    where,
    fields
  } = event || null
 
  // // 查询并返回(已测试此代码没有问题)
  // if (doc) {
  //   const GET = await db.collection(collection).doc(doc).field(fields ? fields : {}).get()
  //   return GET
  // } else {
  //   const GET = await db.collection(collection).where(where).field(fields ? fields : {}).get()
  //   return GET
  // }
 
  // 声明查询(尝试用拼装方式)
  let GET = db.collection(collection)
 
  // 查询条件是doc或where
  doc ? GET.doc = doc : GET.where = where
  // 是否指定返回字段
  fields ? GET.field = fields : null
  // 开始查询
  GET = await GET.get()
  // 返回
  return GET
 
}

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付