收藏
回答

云开发数据库查询条件where中_.in以数组为查询关键字后,不能模糊查询?

使用_.in 以数组中的所有字段为关键字,对数据库进行查询,但是不能使用正则表达式进行模糊查询,尝试通过for循环,将数组中的每一个字段单独模糊查询后,再将每一次查询结果进行拼接汇总后输出,但是又遇到for循环里有向数据库发起查询请求的异步申请,而导致最后的查询返回结果的数组拼接有问题。请教各位大神,应该怎么解决这个问题啊?

                  
                  for (let index = 0; index < resKeyWord.length; index++) {
console.log('当前的keyWord是:',resKeyWord[index])
                  const legalTerms = db.collection('legalTerms').where({
                    keyWord:{
                        $regex:'.*'+ resKeyWord[index],    
                        $options: 'i'
                    }
                  }).orderBy('checkNO', 'desc')
                  .get({
                    success(res) {
                      console.log('当前数组查询的返回值是:',res.data)
                      oldTest = oldTest.concat(res.data)
                      console.log('oldTest:',oldTest)
                  }
                  })
}
                      console.log('oldTest:',oldTest)

最后一行打印出的oldTest是空的,意味着for循环还没有执行完,就执行了最后一行的打印了,尝试了各种方法,都解决不了,感谢各位支招。

或者有没有什么方法直接支持对resKeyWord这个数组对每一个字段进行模糊查询?



回答关注问题邀请回答
收藏

1 个回答

  • Mr.Zhao
    Mr.Zhao
    发表于小程序端
    2023-04-03

    时间不短了吧,第一次碰到异步吗,代码不是按顺序执行的,async await了解一下

    2023-04-03
    有用
    回复
登录 后发表内容