MST

星途 面试题库

面试题:MongoDB条件操作符在嵌套文档更新中的复杂应用

有一个集合orders,文档结构如下:{orderId: 1, customer: {name: '李四', address: '北京路'}, items: [{product: '电脑', quantity: 2, price: 5000}, {product: '鼠标', quantity: 3, price: 100}]}。要求使用条件操作符,将订单中购买数量大于1且产品价格大于1000的商品价格提高10%,写出完整的更新语句,并解释其中条件操作符的作用。
11.4万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试

假设使用的是JavaScript语言,以下是实现代码:

let orders = {
    orderId: 1,
    customer: {name: '李四', address: '北京路'},
    items: [
        {product: '电脑', quantity: 2, price: 5000},
        {product: '鼠标', quantity: 3, price: 100}
    ]
};

orders.items.forEach((item, index) => {
    orders.items[index].price = (item.quantity > 1 && item.price > 1000)? item.price * 1.1 : item.price;
});

console.log(orders);

条件操作符 (condition)? valueIfTrue : valueIfFalse 的作用:

  1. 首先计算 condition 表达式的值,如果为 true,则返回 valueIfTrue;如果为 false,则返回 valueIfFalse
  2. 在上述代码中,item.quantity > 1 && item.price > 1000 是条件判断部分,如果商品购买数量大于1且产品价格大于1000,就将该商品价格提高10%(item.price * 1.1),否则保持原价(item.price)。这样就实现了按条件更新商品价格的功能。