收藏
回答

云函数查询云数据库报超时, 错在哪?

// 1.云函数中有如下写法
const cloud = require('wx-server-sdk')
...
const db = cloud.database()
let res = await db.collection(collectionName).where({}).get()

我使用这种查询云数据库, 会报超时:dbRequest.js:32 Database operation database.queryDocument is longer than 3s. Please check query performance and your network environment.

查看了'Request Header', 'env'值是正确的,

'Request Payload', 看起来也是对的:

db.collection('discountCard').where({})
.get()
// 同样的查询语句, 数据库中直接用模板查就没问题


使用本地函数可以取到数据:

    let resdc = wx.cloud.database().collection('discountCard').where({}).get()
    resdc.then(res => {
      console.log("--", res)
    })

开发环境已经在: 开发工具, 云端, project.config.json, 云函数, 4处做了统一

应该怎么排查?

最后一次编辑于  2022-02-21
回答关注问题邀请回答
收藏

2 个回答

  • Joe
    Joe
    2022-02-22

    可以加一下fields限制一下返回的字段,或者用limit限制一下返回条目试试。 云函数一次返回的条目比SDK多。不知道这里为啥不设置条件,最好设一个查询条件并设置一下索引。

    2022-02-22
    有用
    回复 1
    • JAVA不吃辣椒
      JAVA不吃辣椒
      2022-02-22
      首先因为业务上这个表可以肯定不会超过10条数据, 其次加了也一样.
      2022-02-22
      回复
  • Mr.Zhao
    Mr.Zhao
    2022-02-22

    加个搜索条件看看呢

    2022-02-22
    有用
    回复 4
    • JAVA不吃辣椒
      JAVA不吃辣椒
      2022-02-22
      可能是因为本地调试的问题, 现在不用本地调试就好了
      2022-02-22
      回复
    • Mr.Zhao
      Mr.Zhao
      2022-02-22回复JAVA不吃辣椒
      是不是开代理什么的,我这边没这种问题
      2022-02-22
      1
      回复
    • JAVA不吃辣椒
      JAVA不吃辣椒
      2022-02-22
      确实是代理问题
      2022-02-22
      回复
    • Z
      Z
      2022-05-14回复JAVA不吃辣椒
      什么是代理问题?楼主能详细说一下嘛
      2022-05-14
      回复
登录 后发表内容