java - 如何使用 spring mongoTemplate 使用 DbRef 更新 MongoDB 文档

标签 java spring mongodb spring-data-mongodb

@Document
class Entity1 {
  @Id
  String id
  @DbRef(lazy=true)
  Entity2 entity2;
  String test;
}

mongoTemplate.upsert(
  new Query(Criteria.where("entity2.$id").is(entity2Id),
  new Update().set("test", "newValue"),
  Entity1.class);

我得到了 Found $id field without a $ref before it, which is invalid

我的问题是:如何使用 DbRef 执行此更新插入。

最佳答案

将实体传递给 where 查询,而不是 id。创建 Entity2 并将其保存到数据库,然后使用 entity2 实例并将代码更改为:where("entity2").is(entity2)

关于java - 如何使用 spring mongoTemplate 使用 DbRef 更新 MongoDB 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30665777/

相关文章:

Spring数据elasticSearch使用findOne返回null

java - Spring @Async 执行器

java - 出站Http端点的Spring集成测试

node.js - MongoDB:如何插入子文档?

java - @SequenceGenerator allocationSize 'duplicate key error' 问题

Java Stream API : what kind of map method collect(Collectors. toMap()) 返回?

java - 在 FTP 服务器上递归列出子文件夹

java - 值聚类

node.js - Mongoose 填充回调未定义

javascript - 我需要未填充属性值的 Mongoose/mongoDb 搜索