以前一直使用mysql數據庫,模糊搜索like關鍵字就能搞定。最近接入了mongodb平臺,一時無法適應 ,踩了一些坑,在此記錄下來,希望對其他人能夠有用。
1.mongodb對於普通非文本所有字段如何進行模糊搜索
答案:使用正則表達式。
對於過去經常使用mysql的同學可能不太適合,因爲一想到正則表達式,我們就會想到對性能的影響,通常是能不用就不用,但是mongodb除了文本索引只能使用正則表達式進行模糊搜索。
2.如何在php中使用正則表達式
答案:MongoDBBSONRegex(php7使用了mongodb擴展),mongoregex(php7以前使用mongo擴展)
3.兩者在使用細節上的區別
答案:MongoDBBSONRegex在構造regex對象時傳入的字符串不需要前後的斜線,選項通過第二個參數傳入
$regex = new MongoRegex("/^$search/");
$regex = new \MongoDB\BSON\Regex("^{$search}", 'i');
當然了,如果要使用全文本索引mongodb也是支持的