云数据库查询多条件查询的实时通信错误
发布于 5 年前 作者 fang70 13002 次浏览 来自 问答
db.collection('order_list').where(_.or([
        {operate_status: _lt(2),},
        { 
          submit_date: db.RegExp({
            regexp: this.data.cur_date,
            option: 'i'
          })
        }
      ])).watch({
        onChange: function (snapshot) {
          //监控数据发生变化时触发
          console.log('docs\'s changed events', snapshot.docChanges)
          console.log('query result snapshot after the event', snapshot.docs)
          console.log('is init data', snapshot.type === 'init')

这是onload中的一段代码,目的是查询当天所有的,或者以前日期operate_status<2的记录,小程序首次运行返回的记录正常(包括当天operate_status为2的记录)

当业务逻辑中将当天的某条记录更新operate_status为2,页面自动更新内容,被修改的记录从snapshot.docs中消失,重启小程序后,该记录出现

数据库权限为所有用户可读,创建者可读写,但是我的update操作都是通过云函数完成的

另外,如果我去掉对operater_status判断的条件,单独用一个日期匹配进行查询的话,表现正常,但这可能会导致查询量的增加

回到顶部