sql >> Base de Datos >  >> NoSQL >> MongoDB

5 formas de comprobar el tamaño de una colección en MongoDB

En este artículo, presento 5 formas que puede usar para verificar el tamaño de una colección MongoDB cuando usa el shell mongo.

El dataSize() Método

Probablemente la forma más rápida y sencilla de verificar el tamaño de una colección MongoDB es usar db.collection.dataSize() método. Este método devuelve el tamaño de la colección en bytes.

Para llamar a este método, simplemente reemplace collection con el nombre de la colección que desea consultar.

Ejemplo:

db.posts.dataSize()

Resultado:

3012

Este ejemplo verifica el tamaño de una colección llamada posts . Es solo una pequeña colección con un puñado de documentos pequeños, por lo que el tamaño es de solo 3012 bytes.

El totalSize() Método

db.collection.totalSize() El método devuelve el tamaño total en bytes de los datos de la colección más el tamaño de cada índice de la colección.

Por lo tanto, utilice este método si desea conocer el tamaño total que incluye todos los índices.

Ejemplo:

db.posts.totalSize()

Resultado:

114688

Esta es la misma colección contra la que ejecutamos el ejemplo anterior. Las posts La colección tiene tres índices (incluido el del _id campo), y podemos ver que el tamaño total es significativamente mayor que el tamaño de la colección sin los índices.

Las stats() Método

Si necesita algo más que el tamaño de la colección, puede probar db.collection.stats() método.

Este método devuelve estadísticas sobre la colección (incluido su tamaño).

Ejemplo:

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 devuelve una gran cantidad de datos, por lo que aquí solo devuelvo la primera parte pequeña. El tamaño de la colección aparece cerca de la parte superior de los resultados, en size campo.

De forma predeterminada, este método devuelve datos de tamaño en bytes. Puede cambiarlo para que informe en kilobytes si lo prefiere. Para hacer esto, use la scale parámetro con un valor de 1024 .

Ejemplo:

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
		},
...

El db.collection.stats() proporciona un contenedor alrededor de collStats comando (abajo).

Los collStats Comando

Como se mencionó, el db.collection.stats() El método es un contenedor para collStats comando de diagnóstico. Este comando devuelve estadísticas sobre la colección (incluido su tamaño).

Ejemplo:

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
		},
...

Al igual que con las stats() método, este comando devuelve una gran cantidad de datos, por lo que acabo de tomar algunas cosas de la parte superior.

Tenga en cuenta que proporcioné una scale de 1 en este ejemplo para devolver datos de tamaño en bytes. Podemos cambiar eso a 1024 para devolverlo en kilobytes.

Ejemplo:

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
		},
...

El $bsonSize Operador

El $bsonSize El operador de tubería de agregación se introdujo en MongoDB 4.4 con el fin de devolver el tamaño de un documento BSON.

Puedes usar $bsonSize para devolver el tamaño total de todos los documentos de la colección combinándolo con el $group y $sum operadores.

Ejemplo:

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

Resultado:

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