【问题标题】:How to call db.Collection.stats() from Mongo java driver如何从 Mongo java 驱动程序调用 db.Collection.stats()
【发布时间】:2015-06-25 07:02:32
【问题描述】:


在 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/ 但这对我来说还不够。

谢谢!

【问题讨论】:

  • 一些代码可以帮助您了解到目前为止的情况
  • MongoDB Java驱动3.0及以后版本(3.12+),使用database.runCommand()方法获取集合统计文档;见stackoverflow.com/questions/61052446/…

标签: java mongodb


【解决方案1】:

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

这适用于我的 3.2 驱动程序(由 Mongo 人的 Kay Kim 友情提供)

MongoDatabase database = mongoClient.getDatabase("mydb");
Document stats = database.runCommand(new Document("collStats", "myCollection"));

【讨论】:

  • 是文档,org.bson.Document?您也可以链接您的答案或详细说明 collStats、myCollection 等是什么
  • @nullpointer - 好的,我想让它尽可能小而简洁,并假设人们只会在官方文档中搜索这些问题,但可以肯定...... 1. 是的,它是 org。 bson.Document 2. 对于 collStats,请参阅:docs.mongodb.com/manual/reference/command/collStats 3. 'myCollection' 是指您要运行的 mongo 集合的名称 'collStats'(见上文)基本上这只是官方记录的 mongo 命令的可行 Java 语法.希望对您有所帮助。
【解决方案2】:

使用 CommandResult 在 java 中查找collection stat 检查以下代码:

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"))

【讨论】:

  • 太好了!为我工作。请将变量 cursorDoc 更新为 resultSet。
  • 有谁知道如何在不使用这些已弃用的类的情况下使用 MongoDB Java 驱动程序 3.2 做到这一点?
【解决方案3】:

这将起作用:

CommandResult resultSet = db.getCollection("emp").getStats();
        System.out.println(resultSet);

您将获得 status.ouput 的所有详细信息:

{ "ns" : "test.emp" , "count" : 2 , "size" : 96 , "avgObjSize" : 48 , "numExtents" : 1 , "storageSize" : 8192 , "lastExtentSize" : 8192.0 , "paddingFactor" : 1.0 , "paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only." , "userFlags" : 1 , "capped" : false , "nindexes" : 1 , "indexDetails" : { } , "totalIndexSize" : 8176 , "indexSizes" : { "_id_" : 8176} , "ok" : 1.0}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多