cqwcns 发表于 2021-9-15 17:22

微信小程序云函数的数据库语句拼装问题

为了构建一个比较灵活的数据数据库操作云函数,可以通过前端传过来的参数灵活拼装查询语句。
首先,已被注释的是现在可用的代码,但对于后续的扩展性还不够好,比如增加排序等参数。
我尝试用以下方法来拼装,打印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

}
页: [1]
查看完整版本: 微信小程序云函数的数据库语句拼装问题