[英]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.