d***@qq.com
d***@qq.com
  • 发布:2022-04-12 10:04
  • 更新:2022-04-13 13:07
  • 阅读:442

【报Bug】云函数中多表查询报错

分类:uniCloud

产品分类: uniCloud/腾讯云

示例代码:

'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {
//event为客户端上传的参数
console.log('event : ', event)
const { action, id } = event.queryStringParameters;
switch(action){
case "query":
const res = await db.collection('s-screen,s-material').where({device:id}).field('name,material.file').get()
console.log(res.data)
return {code:0, msg:'success', data:res.data}
}
//返回数据给客户端
return event
};

操作步骤:

如上

预期结果:

查询到s-screen,s-material的联表查询结果

实际结果:

errCode: DATABASE_COLLECTION_NOT_EXIST | errMsg: [ResourceNotFound] Db or Table not exist. Please check your request, but if the problem cannot be solved, contact us.,服务空间内不存在名为s-screen,s-material的表,请检查表名是否正确

bug描述:

'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {
//event为客户端上传的参数
console.log('event : ', event)
const { action, id } = event.queryStringParameters;
switch(action){
case "query":
const res = await db.collection('s-screen,s-material').where({device:id}).field('name,material.file').get()
console.log(res.data)
return {code:0, msg:'success', data:res.data}
}
//返回数据给客户端
return event
};

本地运行云函数调试时报错,提示:
服务空间内不存在名为s-screen,s-material的表,请检查表名是否正确
同时换了用getTemp()临时表的方式,也报错,提示没有getTemp()方法。

如果不跨表,直接查询就没问题
const res = await db.collection('s-screen').where({device:id}).field('name,material').get()

2022-04-12 10:04 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

云函数内默认不支持jql语法,你可以使用原始的lookup写法,也可以使用uni-cloud-jql扩展库

  • 7***@qq.com

    阿里云,云函数有 uni-cloud-jql 报错:db.collection(...).getTemp is not a function

    2022-09-28 18:29

  • 7***@qq.com

    逛了整个百度,还有社区。没找到答案,

    2022-09-28 18:31

  • DCloud_uniCloud_WYQ

    回复 7***@qq.com: 你的db对象怎么得到的

    2022-09-28 19:50

  • 7***@qq.com

    回复 DCloud_uniCloud_WYQ: const db = uniCloud.database();

    2022-12-05 22:16

  • DCloud_uniCloud_WYQ

    回复 7***@qq.com: 这样是获取的原始的database对象,uniCloud.databaseForJQL才是获取jql的database对象

    2022-12-06 11:32

该问题目前已经被锁定, 无法添加新回复