mongoTemplate java 查看mongodb集合表空间大小
时间: 2024-05-12 15:14:34 浏览: 75
你可以使用 `MongoTemplate` 的 `executeCommand()` 方法执行 MongoDB 的 `dbStats` 命令来获取集合表空间大小。
示例代码如下:
```java
MongoOperations mongoOps = new MongoTemplate(new MongoClient("localhost"), "testdb");
CommandResult result = mongoOps.executeCommand("{ dbStats: 1, scale: 1024 }");
DBObject obj = (DBObject) result.get("collections");
for (String collectionName : obj.keySet()) {
DBObject collectionStats = (DBObject) obj.get(collectionName);
double size = Double.parseDouble(collectionStats.get("size").toString());
double storageSize = Double.parseDouble(collectionStats.get("storageSize").toString());
double totalIndexSize = Double.parseDouble(collectionStats.get("totalIndexSize").toString());
double indexSizes = Double.parseDouble(collectionStats.get("indexSizes").toString());
double fileSize = Double.parseDouble(collectionStats.get("fileSize").toString());
System.out.println("Collection: " + collectionName);
System.out.println("Size: " + size / 1024 + " KB");
System.out.println("Storage Size: " + storageSize / 1024 + " KB");
System.out.println("Total Index Size: " + totalIndexSize / 1024 + " KB");
System.out.println("Index Sizes: " + indexSizes / 1024 + " KB");
System.out.println("File Size: " + fileSize / 1024 + " KB");
}
```
上述代码中,`dbStats` 命令返回的结果包含了所有集合的统计信息。你可以遍历结果中的每一个集合,然后获取其表空间大小等信息。在上述代码中,我们将表空间大小等信息输出到控制台。
阅读全文