Как получить размер коллекции от mongo-go-driver - PullRequest
1 голос
/ 25 октября 2019

Мне нужно получить размер коллекции базы данных mongo.
Проект написан на golang с использованием mongo-go-driver .

Ответы [ 3 ]

1 голос
/ 25 октября 2019

Существует два способа проверки этого

Точный метод с CountDocuments

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

и оценка с помощью EstimatedDocumentCount

count, err := client.Database("webshop").Collection("products").EstimatedDocumentCount(context.Background())
1 голос
/ 30 октября 2019

Мне нужно получить размер коллекции базы данных mongo.

Вы можете получить различную статистику хранения коллекции MongoDB, используя команду collStats . Вы можете использовать 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 информации, относящиеся к вашему вопросу. Однако, collStats возвращает больше информации, вы можете увидеть больше информации на примере Basic Stats Lookup . Вы также можете указать параметр scale для изменения байтов в килобайты, см. Поиск статистики со шкалой .

Обратите внимание, что приведенный выше пример написан с помощью mongo-go-driver v1.1.x.

0 голосов
/ 25 октября 2019

в mongodb

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