使用 MONGODB 更新文档记录中的特定字段

Posted

技术标签:

【中文标题】使用 MONGODB 更新文档记录中的特定字段【英文标题】:Update Specific fields in a document record using MONGODB 【发布时间】:2022-01-20 22:32:08 【问题描述】:

我是 mongodb 的新手。所以在 sql 中更新查询的特定字段

在 sql::

update students set marks = 95, grade = 'A' where _id = '1234';

在 mongo shell ::

db.students.update(_id:'1234',"$set":"marks":95,"grade":'A',multi:false);

使用 mongotemplate ,我们如何实现这一点。我尝试使用以下代码进行单字段更新,并且它正在工作。

String uniqueId = student.getSection() + "#" + student.getRollNo();
    Query query = new Query();
    query.addCriteria(Criteria.where("_id").is(uniqueId));
    Update update = Update.update("marks", student.getMarks());
    logger.info("[Updating the Student marks using the id=]["+uniqueId+"]");
    UpdateResult result =  mongoTemplate.updateFirst(query, update, Student.class);

但是我们如何使用 mongo Templete 来更新成绩?注意 :: 我想更新文档中的特定字段,而不是替换整个文档

【问题讨论】:

【参考方案1】:

致电.set(key, value)

Update update = Update.update("marks", student.getMarks()).set("grade", student.getGrade());

//Alternative
Update update = new Update().set("marks", student.getMarks()).set("grade", student.getGrade());

【讨论】:

嗨@Valijon,感谢您的回答。这是工作。但是,如果我想在不干扰现有字段的情况下更新多个字段,我该如何通过 pojo 对象来实现?有没有类似的功能(saveorUPDATE 像休眠中存在的那样)? @user11790395 请举个例子

以上是关于使用 MONGODB 更新文档记录中的特定字段的主要内容,如果未能解决你的问题,请参考以下文章

使用 findOne 更新 mongoDB 文档中的子字段并保存

mongoDB_08索引的操作

无法更新 mongoDB 文档

使用 Spring Data MongodB 更新嵌入式 mongodb 文档中的数组字段?

如何使用 Express & Passportjs 检查 MongoDB 文档中的特定字段

Mongodb,使用选定的文档值使用单个操作更新同一文档中的字段