mongodb模糊查询,可以使用正则表达式查询来实现

1、点号字符在正则表达式中是一个通配符,它代表所有字符和数字。

2、*号表示前面的匹配符出现>=0次

3、+号表示前面的匹配符出现>=1次

4、?号表示前面的匹配符出现<=1次

5、{666}表示前面的匹配符出现666次

6、{666,888}表示前面的匹配符出现666~888次

7、^匹配开头,$匹配结尾

比如,有一堆新闻报道,集合名称为news,正文字段为text

需求1,找出正文中包含”加薪”的新闻:

db.news.find({
“text”: {
$regex: “加薪”
}
});

需求2,找出正文中包含两到四次”加薪”的新闻

db.news.find({
“text”: {
$regex: “(.*加薪.*){2,4}”
}
});

注意:提到两到四次”加薪”,正则表达式不是:(加薪){2,4}

(加薪){2,4}是指的文章中出现了”加薪加薪”或者”加薪加薪加薪”或者”加薪加薪加薪加薪”

需求3,找出跟董事长相关的加薪新闻

db.news.find({
“text”: {
$regex: “.*董事长.*加薪.*”
}
});

有没有感觉,用mongodb也能简单的搜一些语义相关的内容了呢,哈哈哈