首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过mongo-go-driver获取集合的大小

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

Stack Overflow用户
提问于 2019-10-25 17:53:22
回答 3查看 1.6K关注 0票数 1

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

该项目是使用mongo-go-driver用golang编写的。

EN

回答 3

Stack Overflow用户

发布于 2019-10-30 08:00:19

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

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

代码语言:javascript
复制
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条与你的问题相关的信息。但是,collStats返回了更多信息,您可以查看有关Basic Stats Lookup示例的更多信息。您也可以指定scale参数将字节更改为千字节,请参见Stats Lookup with Scale

请注意,上面的示例是使用mongo-go-driver v1.1.x编写的。

票数 5
EN

Stack Overflow用户

发布于 2019-10-25 19:36:35

有两种方法可以检查这种情况

CountDocuments完全相同的版本

代码语言:javascript
复制
count, err := client.Database("webshop").Collection("products").CountDocuments(context.Background(), bson.D{})

并使用EstimatedDocumentCount进行估算

代码语言:javascript
复制
count, err := client.Database("webshop").Collection("products").EstimatedDocumentCount(context.Background())
票数 3
EN

Stack Overflow用户

发布于 2019-10-25 17:55:56

在mongodb中

代码语言:javascript
复制
db.getCollection('collection').find({}).count()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58556193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档