共计 463 个字符,预计需要花费 2 分钟才能阅读完成。
以前一直使用 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 也是支持的
正文完