MST

星途 面试题库

面试题:MongoDB更新数据操作中的常见更新运算符及使用场景

请列举MongoDB中至少三个常用的更新运算符,并分别说明它们适用于哪些更新场景,例如向数组中添加元素、修改文档的某个字段值等。
14.9万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试
  • $set
    • 适用场景:用于修改文档的某个字段值。例如,若有文档{ "name": "John", "age": 30 },想要修改age字段为31,可使用$set运算符。示例代码如下(假设使用JavaScript驱动):
db.users.updateOne(
    { "name": "John" },
    { $set: { "age": 31 } }
);
  • $push
    • 适用场景:向数组类型的字段中添加元素。比如,文档中有{ "name": "Alice", "hobbies": ["reading"] },要向hobbies数组中添加"painting",可如下操作:
db.users.updateOne(
    { "name": "Alice" },
    { $push: { "hobbies": "painting" } }
);
  • $inc
    • 适用场景:对数值类型的字段进行增减操作。例如,有文档{ "name": "Bob", "score": 85 },要将score字段增加5,可这样使用:
db.users.updateOne(
    { "name": "Bob" },
    { $inc: { "score": 5 } }
);
  • $unset
    • 适用场景:从文档中删除指定的字段。假设文档为{ "name": "Eve", "email": "eve@example.com", "phone": "1234567890" },要删除phone字段,可采用:
db.users.updateOne(
    { "name": "Eve" },
    { $unset: { "phone": "" } }
);
  • $addToSet
    • 适用场景:仅在数组中不存在指定元素时,向数组类型的字段添加元素,可避免重复添加。例如,文档{ "name": "Frank", "languages": ["English"] },要添加"French",且确保不重复添加:
db.users.updateOne(
    { "name": "Frank" },
    { $addToSet: { "languages": "French" } }
);