db.collection(str).aggregate()
.addFields({
fullStr: db.command.aggregate.concat(['$stem', ' ', '$choiceA', ' ', '$choiceB', ' ', '$choiceC'])
})
.match(`${new RegExp(query, 'i')}.test(fullStr)`).limit(100).project({
questionid: true
}).end().then(res => {
uni.hideLoading()
let temp = res.result.data
itemArr.value = []
itemContent.value = {}
if (temp.length == 0) {
uni.showToast({
title: '未查到相关题目',
icon: "error"
})
} else {
for (let i in temp) {
itemArr.value.push(temp[i].questionid)
}
itemNum.value = 0
getItem(itemArr.value[itemNum.value])
}
})
这是聚合搜索的代码,搜题库中的旧题没问题,但是新添加到数据库的题就搜不到
1 个回复
1***@qq.com (作者)
终于找到原因了,我新添加的文档中有换行符\n,但是正则表达式中只做了大小写匹配i,添加一个多行匹配s就可以了