如何使用Java Spring MongoOperations调用MongoDB的totalsize()方法
解决方案
方案1:通用版本(兼容所有Spring Data MongoDB版本)
db.collection.totalSize() 本质是MongoDB的 collStats 诊断命令返回结果中的totalSize字段,直接通过MongoOperations执行原生命令即可获取,返回值单位为字节:
import org.springframework.data.mongodb.core.MongoOperations; import org.bson.Document; // 替换为实际要查询的集合名称 String collectionName = "your_collection_name"; // 构造collStats查询命令 Document collStatsCommand = new Document("collStats", collectionName); // 执行命令获取返回结果 Document result = mongoOperations.executeCommand(collStatsCommand); // 提取总存储大小,单位为字节 long totalSize = result.getLong("totalSize"); // 若仅需要统计文档本身占用的大小、不含索引和预留空间,可提取size字段 // long docOnlySize = result.getLong("size");
方案2:Spring Data MongoDB 3.x+ 简化调用
如果你的项目使用的Spring Data MongoDB版本>=3.x,对应的MongoDB Java驱动已经原生封装了totalSize()方法,可以直接获取原生集合实例调用:
import org.springframework.data.mongodb.core.MongoOperations; import com.mongodb.client.MongoCollection; import org.bson.Document; String collectionName = "your_collection_name"; MongoCollection<Document> nativeCollection = mongoOperations.getCollection(collectionName); long totalSize = nativeCollection.totalSize();
内容的提问来源于stack exchange,提问作者shix
相关产品推荐
相关产品推荐

