[英]Mongodb Nodejs Regex Query
我正在使用模塊“ mongodb”從節點js API查詢mongodb。 我正在嘗試通過搜索查詢來搜索聯系人文檔。 相同的選擇器如下:
selector['users.name'] = {$regex: new RegExp(params.query), $options:"i"}
假設用戶名是“ Sagar Gopale”,搜索查詢是“ sagar”或什至是“ gopale”,則上述方法可以正常工作並正確返回結果。 但是,如果我輸入搜索查詢為“ sagar gopale”,它將返回空結果。 有人可以為我提供解決方案,以便我輸入包含空格的搜索查詢嗎?
提前致謝。
實際上,如果您堅持使用regexp
,將會遇到很多困難,我建議您創建一個text
索引:
collection.createIndex({"users.name" : "text"});
然后何時搜索:
db.collection('users').find({
$text: {
$search: params.query,
$caseSensitive: false,
}
});
這樣,當您使用“ Sagar”,“ sagar”,“ sagar gopa”,“ gopale sagar”以及這些2的許多組合時,您將獲得結果。
如果您具有自動完成功能,或者客戶不知道確切的名稱,則此方法非常有效。 Mongo處理了會匹配字母的強文本搜索算法,即使它們的順序不正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.