如何从Mongo java驱动程序调用db.Collection.stats()

nht*_*hai 4 java mongodb


从Mongodb客户端,我们可以使用db.Collection.stats()来获取集合的状态,例如:
+记录数(计数)
+磁盘上的 大小(storageSize)
+索引(indexSizes)
+平均对象大小(avgObjSize)

现在我想用Mongodb java驱动程序监控来自Web后端的这些数据,请告诉我如何获取它们?

我已经提到:http://mongodb.github.io/mongo-java-driver/3.0/driver-async/getting-started/quick-tour-admin/ 但这对我来说还不够.

谢谢!

bel*_*uga 7

@Yoshiya(对不起,没有足够的代表评论许可)

这适用于3.2驱动程序(由Mongo人员Kay Kim提供)

MongoDatabase database = mongoClient.getDatabase("mydb");
Document stats = database.runCommand(new Document("collStats", "myCollection"));
Run Code Online (Sandbox Code Playgroud)

  • @nullpointer - 好的,我想保持这个尽可能小而简洁,并假设人们只是谷歌这些问题的官方文档,但肯定... 1.是的,它是org.bson.Document 2.对于collStats请请参阅:https://docs.mongodb.com/manual/reference/command/collStats/ 3.'myCollection'指的是您想要运行的mongo集合的名称'collStats'(见上文)基本上这是可行的正式记录的mongo命令的Java语法.希望有所帮助. (2认同)

Yog*_*esh 5

使用CommandResult查找collection statjava检查下面的代码:

Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("data base name");
CommandResult resultSet = db.getCollection("collectionName").getStats();
System.out.println(resultSet);
System.out.println(resultSet.get("count"));
System.out.println(resultSet.get("avgObjSize"))
Run Code Online (Sandbox Code Playgroud)

  • 有没有人知道如何使用MongoDB Java驱动程序3.2而不使用这些已弃用的类? (3认同)