繁体   English   中英

如何在不使用 pojo 类的情况下在 Spring Boot 中创建 mongodb 集合?

[英]How to create mongodb collection in spring boot without using pojo class?

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

我使用了控制器、服务、存储库,并在存储库的括号中使用了 Map<String, Object> 而不是使用 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”集合并存储数据。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM