MST

星途 面试题库

面试题:MongoDB正则表达式与模糊查询在复杂业务场景下的综合运用

假设存在一个电商系统的MongoDB数据库,其中有一个orders集合,每个订单文档包含customer_name、order_items数组(数组中每个元素是一个对象,包含product_name和quantity字段)等字段。现在要求实现以下复杂查询:查询所有customer_name中包含'Ltd'且至少有一个order_items的product_name以'electronics'开头且quantity大于5的订单。请详细描述实现过程并写出完整的MongoDB查询语句。
39.0万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试
  1. 实现过程描述
    • 首先,我们要在customer_name字段中查找包含'Ltd'的文档,这可以使用$regex操作符来实现模糊匹配。
    • 然后,对于order_items数组,我们需要找到至少有一个元素满足product_name'electronics'开头且quantity大于5的情况。这可以使用$elemMatch操作符,它用于在数组字段中查找满足多个条件的元素。
  2. MongoDB查询语句
db.orders.find({
    customer_name: { $regex: 'Ltd' },
    order_items: {
        $elemMatch: {
            product_name: { $regex: '^electronics' },
            quantity: { $gt: 5 }
        }
    }
});