MongoDB:如何实现不存在则添加字段的更新操作?
MongoDB更新文档:字段不存在时自动创建字段
要实现字段不存在时自动创建并赋值,核心是使用$set操作符——它专门用于修改或添加指定字段,不管该字段是否已存在于文档中。
正确的更新语句(MongoDB Shell)
db.collection.updateOne( { key: 1 }, // 匹配目标文档的查询条件 { $set: { age: 20 } }, // 用$set设置age字段 { upsert: true } // 可选:无匹配文档时自动插入新文档 )
关键说明
- 使用
updateOne更新单个匹配文档,若需批量更新可替换为updateMany $set是核心:如果文档中没有age字段,它会自动创建并赋值为20;如果已有age字段,则直接更新其值upsert: true仅在没有找到匹配key:1的文档时生效,此时会插入一个包含查询条件和age字段的新文档,不需要该逻辑可直接删除此参数
执行后,原文档会变为:
{ "key": 1, "name": "abc", "age": 20 }
内容的提问来源于stack exchange,提问作者Geekyvinayak
相关产品推荐
相关产品推荐

