MST

星途 面试题库

面试题:MongoDB批量更新复杂嵌套文档结构数据的策略

假设有一个MongoDB集合'students',每个文档结构如下:{ 'name': 'John', 'grades': [ { 'course': 'Math', 'score': 85 }, { 'course': 'Science', 'score': 90 } ] }。现在要批量更新,将所有学生的Math课程成绩提高10分,描述更新的策略以及写出完整的更新代码。
12.4万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试

更新策略

  1. 使用updateMany方法对students集合中的所有文档进行批量更新。
  2. 利用$操作符定位到grades数组中courseMath的元素。
  3. 使用$inc操作符来增加score的值。

更新代码

db.students.updateMany(
    { "grades.course": "Math" },
    { $inc: { "grades.$.score": 10 } }
);

在上述代码中:

  • updateMany的第一个参数{ "grades.course": "Math" }是查询条件,用于筛选出包含Math课程的学生文档。
  • 第二个参数{ $inc: { "grades.$.score": 10 } }是更新操作,$inc操作符将满足条件的grades数组元素中的score值增加10 。grades.$.score中的$操作符表示匹配到的grades数组元素的位置。