为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过 mongo-go-driver 获取集合的大小

如何通过 mongo-go-driver 获取集合的大小

Go
SMILET 2023-07-31 15:54:19
我需要获取 mongo 数据库集合的大小。该项目是使用mongo-go-driver用 golang 编写的。
查看完整描述

3 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

我需要获取 mongo 数据库集合的大小。

您可以使用collStats命令获取 MongoDB 集合的各种存储统计信息。您可以利用Database.RunCommand通过MongoDB Go 驱动程序执行数据库命令。例如:

db := client.Database("databaseName")


result := db.RunCommand(context.Background(), bson.M{"collStats":"collectionname"})


var document bson.M

err = result.Decode(&document)


if err !=nil {

    panic(err)

}


fmt.Printf("Collection size: %v Bytes\n", document["size"])

fmt.Printf("Average object size: %v Bytes\n", document["avgObjSize"])

fmt.Printf("Storage size: %v Bytes\n", document["storageSize"])

fmt.Printf("Total index size: %v Bytes\n", document["totalIndexSize"])

上面的例子只打印了4条与你的问题相关的信息。

查看完整回答
反对 回复 2023-07-31
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

有两种方法可以检查这一点

与CountDocuments完全相同

count, err := client.Database("webshop").Collection("products").CountDocuments(context.Background(), bson.D{})

并使用EstimatedDocumentCount进行估计

count, err := client.Database("webshop").Collection("products").EstimatedDocumentCount(context.Background())



查看完整回答
反对 回复 2023-07-31
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

在 mongodb 中

db.getCollection('collection').find({}).count()


查看完整回答
反对 回复 2023-07-31
  • 3 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信