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 }