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判断的条件,单独用一个日期匹配进行查询的话,表现正常,但这可能会导致查询量的增加