MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

5 maneiras de verificar o tamanho de uma coleção no MongoDB


Neste artigo, apresento 5 maneiras que você pode usar para verificar o tamanho de uma coleção do MongoDB ao usar o shell do mongo.

O dataSize() Método


Provavelmente, a maneira mais rápida e fácil de verificar o tamanho de uma coleção do MongoDB é usar o db.collection.dataSize() método. Este método retorna o tamanho da coleção em bytes.

Para chamar este método, basta substituir collection com o nome da coleção que você deseja verificar.

Exemplo:
db.posts.dataSize()

Resultado:
3012

Este exemplo verifica o tamanho de uma coleção chamada posts . É apenas uma pequena coleção com um punhado de pequenos documentos e, portanto, o tamanho é de apenas 3012 bytes.

O totalSize() Método


O db.collection.totalSize() O método retorna o tamanho total em bytes dos dados na coleção mais o tamanho de cada índice na coleção.

Portanto, use esse método se desejar saber o tamanho total que inclui todos os índices.

Exemplo:
db.posts.totalSize()

Resultado:
114688

Essa é a mesma coleção com a qual executamos o exemplo anterior. As posts A coleção tem três índices (incluindo o do _id campo), e podemos ver que o tamanho total é significativamente maior que o tamanho da coleção sem os índices.

As stats() Método


Se você precisar de mais do que apenas o tamanho da coleção, tente o db.collection.stats() método.

Este método retorna estatísticas sobre a coleção (incluindo seu tamanho).

Exemplo:
db.posts.stats()

Resultado (parcial):
{
	"ns" : "krankykranes.posts",
	"size" : 3012,
	"count" : 27,
	"avgObjSize" : 111,
	"storageSize" : 36864,
	"freeStorageSize" : 16384,
	"capped" : false,
	"wiredTiger" : {
		"metadata" : {
			"formatVersion" : 1
		},
...

Este método retorna muitos dados, então estou retornando apenas a primeira pequena parte aqui. O tamanho da coleção é listado próximo ao topo dos resultados, no size campo.

Por padrão, esse método retorna dados de tamanho em bytes. Você pode alterá-lo para que informe em kilobytes, se preferir. Para fazer isso, use a scale parâmetro com um valor de 1024 .

Exemplo:
db.posts.stats( { scale: 1024 } )

Resultado (parcial):
{
	"ns" : "krankykranes.posts",
	"size" : 2,
	"count" : 27,
	"avgObjSize" : 111,
	"storageSize" : 36,
	"freeStorageSize" : 16,
	"capped" : false,
	"wiredTiger" : {
		"metadata" : {
			"formatVersion" : 1
		},
...

O db.collection.stats() fornece um wrapper em torno do collStats comando (abaixo).

As collStats Comando


Como mencionado, o db.collection.stats() é um wrapper para o collStats comando de diagnóstico. Este comando retorna estatísticas sobre a coleção (incluindo seu tamanho).

Exemplo:
db.runCommand( { collStats : "posts", scale: 1 } )

Resultado (parcial):
{
	"ns" : "krankykranes.posts",
	"size" : 3012,
	"count" : 27,
	"avgObjSize" : 111,
	"storageSize" : 36864,
	"freeStorageSize" : 16384,
	"capped" : false,
	"wiredTiger" : {
		"metadata" : {
			"formatVersion" : 1
		},
...

Assim como o stats() método, este comando retorna muitos dados, então acabei de pegar algumas coisas no topo.

Observe que forneci uma scale de 1 neste exemplo para retornar dados de tamanho em bytes. Podemos alterar isso para 1024 para devolvê-lo em kilobytes.

Exemplo:
db.runCommand( { collStats : "posts", scale: 1024 } )

Resultado (parcial):
{
	"ns" : "krankykranes.posts",
	"size" : 2,
	"count" : 27,
	"avgObjSize" : 111,
	"storageSize" : 36,
	"freeStorageSize" : 16,
	"capped" : false,
	"wiredTiger" : {
		"metadata" : {
			"formatVersion" : 1
		},
...

O $bsonSize Operador


O $bsonSize O operador de pipeline de agregação foi introduzido no MongoDB 4.4 com a finalidade de retornar o tamanho de um documento BSON.

Você pode usar $bsonSize para retornar o tamanho total de todos os documentos da coleção combinando-o com o $group e $sum operadores.

Exemplo:
db.posts.aggregate([
  {
    $group: {
      "_id": null,
      "rootSize": { $sum: { $bsonSize: "$$ROOT" } }
    }
  }
])

Resultado:
{ "_id" : null, "rootSize" : 3012 }