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