gpt4 book ai didi

mongodb - Spring Data Mongo 可以只更新文档中的脏字段吗?

转载 作者:可可西里 更新时间:2023-11-01 09:13:47 25 4
gpt4 key购买 nike

我已经开始将 spring-data-mongo 用于一个有很多东西需要持久化的应用程序。

我们实际上选择了 mongo,因为它是这样宣传的。现在严重沉迷于 spring,我们发现使用它的一些功能我们的生活非常轻松(对辛勤工作的 spring 数据人员表示敬意)。

但有一点:文档包含超过 60 个字段。所以我关于速度可伸缩性的问题是spring-data-mongo能否只更新mongo数据库中的脏字段 code> 就像 Hibernate 一样吗?有点像它的解释here作者:Arthur Ronald F D Garcia

感谢阅读本文

最佳答案

来自 MongoDB 文档:

If the update argument contains only field and value pairs, the update() method replaces the existing document with the document in the update argument, except for the _id field.

换句话说,MongoDB 的更新与您描述的完全一样。因此,如果您在测试集合中有此文档:

{ "_id" : "123", "oldfield" : "oldvalue" }

然后在 mongo CLI 中运行以下命令:

db.test.update({"_id": "123"}, { newfield : "value" })

新文档将如下所示:

{"_id": "123", "newfield" : "value"}

如果您只想修改某些字段,可以使用 $set 运算符为一个或多个字段设置值。当您使用 spring 数据时,您应该使用 MongoTemplate 类来进行此更新:

Query q = new Query(Criteria.where("_id").is("123"));
Update u = Update
.update("newfield", "value")
.set("oldfield", "newvalue");

this.template.findAndModify(query, update, Entity.class);

您可以在此处阅读有关 $set 运算符和 mongodb 更新的信息: http://docs.mongodb.org/manual/reference/operators/#_S_sethttp://docs.mongodb.org/manual/applications/update

关于mongodb - Spring Data Mongo 可以只更新文档中的脏字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13397833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com