我需要获取mongo数据库集合的大小。
该项目是使用mongo-go-driver用golang编写的。
发布于 2019-10-30 08:00:19
我需要获取mongo数据库集合的大小。
您可以使用collStats命令获取MongoDB集合的各种存储统计信息。您可以通过MongoDB Go driver利用Database.RunCommand来执行数据库命令。例如:
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编写的。
发布于 2019-10-25 19:36:35
有两种方法可以检查这种情况
与CountDocuments完全相同的版本
count, err := client.Database("webshop").Collection("products").CountDocuments(context.Background(), bson.D{})并使用EstimatedDocumentCount进行估算
count, err := client.Database("webshop").Collection("products").EstimatedDocumentCount(context.Background())发布于 2019-10-25 17:55:56
在mongodb中
db.getCollection('collection').find({}).count()https://stackoverflow.com/questions/58556193
复制相似问题