集合内的更新列表dbref

问题描述 投票:1回答:1

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

@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));
        };
    }
java mongodb spring-data-mongodb mongodb-java
1个回答
0
投票

根据Spring javadoc保存方法执行以下操作:将对象保存到要保存的对象的实体类型的集合中。如果对象尚不存在,则会执行插入操作,即“ upsert”。

© www.soinside.com 2019 - 2024. All rights reserved.