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也能简单的搜一些语义相关的内容了呢,哈哈哈