我正在尝试在下面的收藏夹中搜索字符串
{
question: "What is your least favorite thing about living in the USA?",
description: "aaaa"
},
{
question: "What is the saddest thing a casino dealer has seen at their table?",
description: "bbbb"
}
我能够通过使用
来做到这一点db.questions.aggregate(
[
{ $match: { question_title: { $regex: 'what', $options: "i" } }
]
)
,我收到了两个文件。但是,当我使用关键字
'what USA'
我没有收到任何结果。我的预期结果是
"What is your least favorite thing about living in the USA?"
您能建议我使用一个正则表达式吗,以便我的任何关键字与问题文档匹配时都能得到结果?
答案 0 :(得分:1)
您可以使用以下内容:
conda install -c anaconda beautifulsoup4
这是不区分大小写的db.questions.aggregate([
{ $match: { question: { $regex: '(?i)(:s|usa|what)', $options: "i" } } }
])
匹配项,当前查找(?i)
或usa
答案 1 :(得分:1)
动态正则表达式:
1。此正则表达式不匹配“ ua what”的确切单词返回结果:
var searchString = 'usa what';
var regexStr = '(?i)(:s|' + searchString.split(' ').join('|')+')';
db.getCollection('searchQuestion').aggregate(
[
{ $match: { question: { $regex: regexStr, $options: "i" } } },
]
);
2。对于完全匹配的单词。
示例:
var searchStringg = 'usa what';
var regexStrr = '\\b' + searchStringg.split(' ').join('\\b|\\b')+'\\b';
db.getCollection('searchQuestion').aggregate(
[
{ $match: { question: { $regex: regexStrr, $options: "i" } } },
]
)