以前一直使用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也是支持的