Java 集合内的更新列表dbref

Java 集合内的更新列表dbref,java,mongodb,spring-data-mongodb,mongodb-java,Java,Mongodb,Spring Data Mongodb,Mongodb Java,我有一个目录集合,它有一个产品列表,我想通过添加另一个产品来更新目录,问题是在目录集合中删除现有产品并保留添加的产品,而在产品集合中它们仍然存在 @Document(collection = "catalog") public class Catalog { @Id String id; String name; @DBRef List<Product> products; } @Document(collection = "product

我有一个目录集合,它有一个产品列表,我想通过添加另一个产品来更新目录,问题是在目录集合中删除现有产品并保留添加的产品,而在产品集合中它们仍然存在

@Document(collection = "catalog")
public class Catalog {

    @Id
    String id;
    String name;
    @DBRef
    List<Product> products;
}

@Document(collection = "product")
public class Product {

    @Id
    String id;
    Integer price;
}

    @Bean
    CommandLineRunner init(MongoOperations mongoOperations) {
        return args -> {
            // step 1
            List<Product> products1 = Arrays.asList(new Product().id("1").price(120), new Product().id("2").price(150));
            for (Product product : products1) {
                mongoOperations.save(product);
            }
            mongoOperations.save(new Catalog().id("55").name("Catalog 1").products(products1));

            // step 2
            List<Product> products2 = Arrays.asList(new Product().id("3").price(497));
            for (Product product : products2) {
                mongoOperations.save(product);
            }
            mongoOperations.save(new Catalog().id("55").name("Catalog 1").products(products2));
        };
    }
@文档(collection=“catalog”)
公共类目录{
@身份证
字符串id;
字符串名;
@DBRef
列出产品清单;
}
@文件(收集=“产品”)
公共类产品{
@身份证
字符串id;
整数价格;
}
@豆子
CommandLineRunner初始化(MongoOperations MongoOperations){
返回参数->{
//第一步
List products1=Arrays.asList(新产品().id(“1”).price(120),新产品().id(“2”).price(150));
对于(产品:products1){
mongoOperations.save(产品);
}
mongoOperations.save(new Catalog().id(“55”).name(“Catalog 1”).products(products1));
//步骤2
List products2=Arrays.asList(new Product().id(“3”).price(497));
对于(产品:products2){
mongoOperations.save(产品);
}
mongoOperations.save(new Catalog().id(“55”).name(“Catalog 1”).products(products2));
};
}
根据保存方法执行以下操作:将对象保存到要保存的对象的实体类型的集合中。如果对象不存在,这将执行插入操作,即“向上插入”。

根据保存方法执行以下操作:将对象保存到集合中,以便保存对象的实体类型。如果对象不存在,这将执行插入,即“向上插入”