收藏
回答

云开发数据库严重bug

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 Bug 工具 wxf51ca7b3d53183b5 2.2.5

- 当前 Bug 的表现(可附上截图)




- 预期表现

应该查不到数据


- 复现路径

[数据库]

在数据库中创建集合 User , 在集合中创建记录 { _id:xxxxxxxxx(自动生成) }

[编写云函数]

(关键代码简述)通过 where({ openid : wxContext.OPENID })  去查询 , 正常情况应该查不到数据 , 却得到了上述的一条记录

[云开发项目---云函数测试环境]


- 提供一个最简复现 Demo

// 云函数入口文件
const cloud = require('wx-server-sdk')
 
cloud.init()
const db = cloud.database()
 
// 云函数入口函数

exports.main = async(event, context) => {


 // 主要目的是通过 _openid 查找数据 判断是否老用户

  // 数据库中不存在含有 _openid 字段的数据

  await db.collection("user").where({


    _openid: wxContext.OPENID 


  }).get().then(function(res) {


    if (res.data.length == 1) {
      // 可是却能查到数据

      event.index = res.data[0]._id

    }


  })
 
  return {
    event,
  }
}


最后一次编辑于  04-14  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 邓坤力
    邓坤力
    04-15

    控制台测试的时候是没有带微信信息的,因此 wxContext.OPENID 是 undefined,等于没有筛选条件,所以这是预期表现

    04-15
    赞同 1
    回复 3
  • 宋杰
    宋杰
    06-10

    你好,我也遇到了类似问题。就是我是使用云函数来添加记录到云数据库,这样的话就不会自动生成_openid字段,那这样的话我是另建openid字段呢,还是直接使用前台添加记录到数据库呢

    06-10
    赞同
    回复