首页 > 解决方案 > 如何通过 mongoDb 中的 spring 数据进行 serverStatus() 查询

问题描述

我在 micorservice 中有几个集合的数据库,所以有一些控制器可以正常工作。但我需要从服务器收集统计信息,包括数据库。有一个很好的查询 serverStats() 可以提供有关服务器的所有信息,但是如何通过应用程序层传递它?

我使用 SomeModel 类作为占位符制作了接口存储库扩展 ReactiveCrudRepository 并编写了一种方法,例如带有 @Query 注释的 String getStatistics() ,但它不起作用

public interface MongoMonitoring extends ReactiveCrudRepository<SomeModel, String> {
    @Query("{ serverStatus: 1 }")
    String getStatus();

标签: javamongodbspring-bootmonitoringmetrics

解决方案


使用 Mongo 模板。代码如下:

private MongoTemplate mongoTemplate;
Document result = this.mongoTemplate.executeCommand("{ serverStatus: 1 }");

该文档来自 org.bson.Document 包,类似于 JSON。


推荐阅读