云开发数据库严重bug
发布于 6 年前 作者 yong80 1446 次浏览 来自 问答
  • 当前 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,
  }
}

2 回复

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

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

回到顶部