小程序端代码如下:
var res = await db.collection('collection')
.aggregate()
.lookup({
from: 'article',
localField: 'article_id',
foreignField: '_id',
as: 'article_info',
})
.limit()
.skip( * (this.data.page - ))
.end();
collection权限设置是仅创建者可读写,article权限设置设置为所有者可读,创建者可写
以上查询报错为:
Uncaught (in promise) Error:errCode:-502003 database permission denied | errMsg: Permission denied
然后把代码修改成:
var res = await db.collection('collection')
.aggregate()
.limit()
.skip( * (thisdata.page - ))
.end()
正常返回数据
单独查询article数据也能正常返回数据,代码如下:
let res = await db.collection('article').limit(10).skip(10 * (this.data.page - )).get();
怀疑还是权限问题,把article权限修改为所有人可读写,结果还是报错
Uncaught (in promise) Error:errCode:-502003 database permission denied | errMsg: Permission denied
改用服务端调用数据能正常返回数据
varres = await db.collection('collection')
.aggregate()
.match({
_openid:openid,
cate_id: cate_id
})
.lookup({
from: 'article',
localField: 'article_id',
foreignField: '_id',
as: 'article_info',
})
.limit(num)
.skip(num * (page - 1))
.end();
请问应该怎么设置,哪里的权限设置有问题
lookup 不能在小程序端运行
遇到同样的问题,文档中没有这个问题的描述,并没有提到客户端不能lookup,被lookup的数据都是有权限的。
其实小程序端不能用lookup文档早有说明了,只是用了灰色字体很隐蔽。。。
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/join.html
联表查询
同问题,希望增加客户端联表查询权限
有人解决了吗?遇到同样的问题
那怎么解决?写云函数,在调用吗
有解决方案吗?小程序用云数据库,两表Join怎么处理?求教!!!
同被这个坑了,求问不用lookup的话 小程序里面怎么做两个表的join?