java - MongoDb 在其 java 驱动程序中的 $set 等效项

标签 java mongodb

有没有一种方法可以通过其 Java 驱动程序修改 MongoDb 中某个键的值。我尝试了以下方法:

someCollection.update(DBObject query, DBObject update);
someCollection.findAndModify(DBObject query, DBObject update);

但是这两个函数都用更新的文档完全替换了查询的文档。像在 mongo shell 中使用 $set 一样,仅更新特定键的一个值的方法是什么。(除了制作一个全新的 Document 并复制所有字段并更新其中一个字段)。

最佳答案

BasicDBObject carrier = new BasicDBObject();
BasicDBObject query = new BasicDBObject();
query.put("YOUR_QUERY_STRING", YOUR_QUERY_VALUE);

BasicDBObject set = new BasicDBObject("$set", carrier);
carrier.put("a", 6);
carrier.put("b", "wx1");        
myColl.updateMany(query, set);

这应该可以,被接受的答案不在上面。

关于java - MongoDb 在其 java 驱动程序中的 $set 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4943434/

相关文章:

javascript - 使用 Nashorn 将 JavaScript 解析成语法树

mongodb - 使用 2 个数据库时的 Javers ENTITY_INSTANCE_WITH_NULL_ID

java - Android Instrumentation 使用 androidx Orchestrator 进行测试部分失败

java - 垂直进度条有奇怪的背景,不可更改

java - 使用谓词的通用集合过滤

java - 当应用程序运行时,使用 Apache Mahout 的 TFIDF 有 "Job failed!"

python - Tornado :如何为多个请求共享 pymongo 连接?

mongodb - 如何使用 docker-compose 连接到 mongodb?

java - Spring 数据 MongoDB : aggregation framework - sort with nested property throws invalid reference

javascript - mongodb在事件评论中将用户添加到喜欢的数组