[英]Find all occurrences of elements in an array in a string
您可以将管道分隔的正则表达式模式与关键字列表一起使用,如下所示:
const subStrings = ["javascript", "php", "python"];
const regex = subStrings.join("|");
db.find ({
body: { $regex: regex, $options: 'i' }
});
使用$regex
运算符,并将字符串中包含的正则表达式传递给它:
db.find({ body: { $regex: ".*javascript.*" }});
您也可以这样做:
db.find({ body: /.*javascript.*/ });
db.find({ body: /javascript/ });
首先,您需要在要搜索的字段上创建文本索引。 如果要搜索所有字段
db.collection.createIndex( { "$**": "text" } )
或者,如果您只想包含几个特定字段,则可以
db.collection.createIndex( { title: "text", body: "text" } )
您也可以添加重量,例如。 在您的情况下,标题的权重应大于说明。
然后,您可以进行如下搜索:
db.collection.find( { $text: { $search: "java javascript python" } } )
这将搜索包含任何或所有这些单词的所有文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.