面试题答案
一键面试实现思路
在MongoDB中,进行不区分大小写的模糊查询可以使用正则表达式。为了优化性能,可在product_name
字段上创建索引。
优化措施
- 创建索引:在
product_name
字段上创建索引,加快查询速度。 - 使用覆盖索引:如果查询只需要返回
product_name
字段,那么查询可以利用覆盖索引,减少从磁盘读取文档的开销。
具体代码
- 创建索引:
db.products.createIndex({product_name: 1});
- 不区分大小写的模糊查询:
db.products.find({
product_name: {
$regex: 'phone',
$options: 'i'
}
});
如果只需要返回product_name
字段,可使用投影来利用覆盖索引:
db.products.find({
product_name: {
$regex: 'phone',
$options: 'i'
}
}, {product_name: 1, _id: 0});