java - Spring数据MongoDB : update using dot-notation

标签 java mongodb spring-data-mongodb

我的问题很简单,所以请原谅......

Spring Data MongoDB 支持更新查询中的点表示法吗?

我尝试执行此片段:

Query query = new Query(Criteria.where("_id").is(id));
Update update = new Update();
update.set("value.version",version);
mongoOperations.updateFirst(query, update, Audit.class);

并在 Audit 集合中发现没有预期的变化。我错过了什么?

最佳答案

我的错误是我没有意识到查询条件的is()部分中的id必须是ObjectId。由于某种原因,Spring Data 会自动从 ObjectId 转换为 BigInteger,但不会自动从 BigInteger 转换为 ObjectId。

如果有人知道如何手动转换,请回答this question

关于java - Spring数据MongoDB : update using dot-notation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17526558/

相关文章:

java - 重新启动 Sonar 时 Sonar 错误日志

java - 如何在 Android/Java 中读取 Apache POI 中的 xlsx 文件

node.js - mongoose.save() 有两种类型的行为

java - 具有抽象类注释的 Morphia

mongodb - 出现错误 "No serializer found for class org.springframework.data.mongodb.core.convert.DefaultDbRefResolver$LazyLoadingInterceptor"

java - 如何继承 CompletableFuture?

java - JavaFX 中的 SecondaryLoop,如 Swing?

node.js - 获取两个不同结构集合的差异

java - @CompoundIndex 在 Spring Data MongoDB 中不起作用

java - Spring-data-mongo 无法使用构造函数实例化 java.util.List