- $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" } }
);