使用Nestjs和Mongodb,尝试在数据库中搜索所有包含所有关键字的“摘要”(这是一个字符串数组)。
它的工作,但性能真的很差,有没有人知道任何其他的替代品或更好的做法?
filters.keywords = array of strings / string[]
mongodb中的summary字段只是一个字符串。
const regex = new RegExp(
'(?=.*?\\b' + filters.keywords.join(')(?=.*?\\b') + ').*',
'i',
);
return this.articleModel
.find({
summary: { $regex: regex },
})
.exec();
字符串
1条答案
按热度按时间iqxoj9l91#
将BOS和EOS添加到正则表达式中。
去掉点
.
,替换为[\S\s]
,它也匹配换行符。字符串
输出
/^(?=[\S\s]*\bhowdy)(?=[\S\s]*\bdooty)(?=[\S\s]*\btooty)[\S\s]*$/i