簡體   English   中英

Mongodb Node.js正則表達式查詢

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM