在MongoDB 3.2中获取集合统计信息

3

在较早的版本中,比如MongoDB 2.6,DBCollection类有这个方法getStats()。

DBCollection.getStats()

在新的3.x版本中,我们有了一个新的类:

MongoCollection

但它没有获取统计信息的方法。
我的问题是如何从MongoCollection类获取统计信息。

我理解MongoCollection是一个接口。但是Mongodatabase.getCollection()返回的是MongoCollection,我不确定如何在V3.2 Java驱动程序中检索集合统计信息。 - Venkat Loganathan
我不知道这是否有效,但你是否尝试过将MongoCollection转换为DBCollection? - Hayden Braxton
尝试过了,但没有成功。 - Venkat Loganathan
1个回答

2
所以我认为我已经为您找到了一个解决方案。它有点hackish,但从我所读的内容来看,我找不到其他方法。我正在阅读Mongo的资源,他们说他们简化了驱动程序并减少了集合的可用方法数量。我猜想getStats()可能被削减了,因为它似乎不是您通常会做的事情,至少对于大多数用例来说不是通过编程方式实现的。所以这是您可以做的:
首先,MongoDatabase对象将具有runCommand()方法。3.0 driver docs
如果您在此处查看,您将获得可以使用runCommand()执行的所有命令列表。
其中之一是collStats。根据文档,看起来您需要传递一个具有以下形式的Bson对象来运行命令:
{
   collStats: <string>,
   scale: <int>,
   verbose: <boolean>
}

collStats是你想要获取统计信息的集合的字符串名称。scale是可选字段,你可以在最后一个链接中了解它。Verbose默认为false。

我不能确定这是否能够满足你的需求,但至少它会让你接近目标。让我知道它的效果如何!


太棒了。那么您能否给我的回答点个赞并接受它呢? - Hayden Braxton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接