lookup bug 报错 errMsg: Permission denied 权限设置没问题
发布于 6 年前 作者 tanwei 10161 次浏览 来自 官方Issues

小程序端代码如下:

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();

请问应该怎么设置,哪里的权限设置有问题

2 回复

lookup 不能在小程序端运行

遇到同样的问题,文档中没有这个问题的描述,并没有提到客户端不能lookup,被lookup的数据都是有权限的。

回到顶部