【问题标题】:How to create mongodb collection in spring boot without using pojo class?如何在不使用 pojo 类的情况下在 spring boot 中创建 mongodb 集合?
【发布时间】:2021-07-16 09:35:10
【问题描述】:

我有一个带有 MongoDB 连接的 Spring Boot 应用程序。在使用带有@Document(Collection = "CompanyDetails") 的 POJO/Model 类时,它在“POSTMAPPING”之后成功地在 MongoDB 中创建了集合,并且结果按预期进入了 CompanyDetails 集合中。

我使用了控制器、服务、存储库,并且使用了存储库括号中的 Map 而不是使用 POJO 类。

控制器:

@PostMapping("/addRecords")
public Map<String, Object> addCompanyDetails(@RequestBody Map<String, Object> companyDetails) {
    return companyDetailsService.addCompanyDetails(companyDetails);
}

服务:

@Service
public class CompanyDetailsService {

@Autowired
CompanyDetailsRepository companyDetailsRepository;

public Map<String, Object> addCompanyDetails(Map<String, Object> companyDetails) {
        return companyDetailsRepository.insert(companyDetails);
        
    }
}

存储库:

@Repository
public interface CompanyDetailsRepository extends MongoRepository<Map<String, Object>, String> {}

我的要求是创建一个没有 POJO 类的集合。因为,字段不固定(插入记录时)。所以,我不能在 POJO 类中声明字段并生成 getter setter。

由于我没有使用 POJO 类,所以当我发布记录时,它会创建一个名为“map”的集合并在其中插入记录。 但是,预期是在其中创建“CompanyDetails”集合并存储数据。

【问题讨论】:

    标签: java spring mongodb spring-boot pojo


    【解决方案1】:

    是的,使用 MongoDB 的人面临这个问题,因为 MongoDB 是一个无模式数据库,创建 POJO 会很困难。因此,这是此类用例的解决方案。

    首先,您可以使用MongoClient 连接您的数据库。查看此文档以供参考:Connect to MongoDB

    其次,您可以使用该 `mongoClient 对象创建数据库和集合。查看此文档以供您参考Create database and collection

    最后,您可以使用一些通用对象,例如 HashMapBasicDBObject 来执行您的 CRUD 操作

    【讨论】:

      猜你喜欢
      • 2016-12-05
      • 2017-06-14
      • 2015-06-07
      • 2018-12-03
      • 2015-07-20
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      相关资源
      最近更新 更多