Dans cet article, je présente 5 méthodes que vous pouvez utiliser pour vérifier la taille d'une collection MongoDB lorsque vous utilisez le shell mongo.
Le dataSize()
Méthode
Le moyen le plus rapide et le plus simple de vérifier la taille d'une collection MongoDB est probablement d'utiliser le db.collection.dataSize()
méthode. Cette méthode renvoie la taille de la collection en octets.
Pour appeler cette méthode, remplacez simplement collection
avec le nom de la collection que vous souhaitez vérifier.
Exemple :
db.posts.dataSize()
Résultat :
3012
Cet exemple vérifie la taille d'une collection appelée posts
. C'est seulement une petite collection avec une poignée de petits documents, et donc la taille n'est que de 3012 octets.
La totalSize()
Méthode
Le db.collection.totalSize()
renvoie la taille totale en octets des données de la collection plus la taille de chaque index de la collection.
Par conséquent, utilisez cette méthode si vous souhaitez connaître la taille totale qui inclut tous les index.
Exemple :
db.posts.totalSize()
Résultat :
114688
Il s'agit de la même collection sur laquelle nous avons exécuté l'exemple précédent. Les posts
collection a trois index (y compris celui sur le _id
champ), et nous pouvons voir que la taille totale est nettement supérieure à la taille de la collection sans les index.
Les stats()
Méthode
Si vous avez besoin de plus que la taille de la collection, vous pouvez essayer le db.collection.stats()
méthode.
Cette méthode renvoie des statistiques sur la collection (y compris sa taille).
Exemple :
db.posts.stats()
Résultat (partiel) :
{
"ns" : "krankykranes.posts",
"size" : 3012,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36864,
"freeStorageSize" : 16384,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
Cette méthode renvoie beaucoup de données, donc je ne renvoie que la première petite partie ici. La taille de la collection est répertoriée en haut des résultats, dans la size
champ.
Par défaut, cette méthode renvoie les données de taille en octets. Vous pouvez le modifier pour qu'il rapporte en kilo-octets si vous préférez. Pour cela, utilisez la scale
paramètre avec une valeur de 1024
.
Exemple :
db.posts.stats( { scale: 1024 } )
Résultat (partiel) :
{
"ns" : "krankykranes.posts",
"size" : 2,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36,
"freeStorageSize" : 16,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
Le db.collection.stats()
fournit un wrapper autour de collStats
commande (ci-dessous).
Les collStats
Commande
Comme mentionné, le db.collection.stats()
method est un wrapper pour le collStats
commande diagnostique. Cette commande renvoie des statistiques sur la collection (y compris sa taille).
Exemple :
db.runCommand( { collStats : "posts", scale: 1 } )
Résultat (partiel) :
{
"ns" : "krankykranes.posts",
"size" : 3012,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36864,
"freeStorageSize" : 16384,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
Comme avec le stats()
, cette commande renvoie beaucoup de données, donc je viens de récupérer quelques trucs en haut.
Notez que j'ai fourni une scale
de 1
dans cet exemple pour renvoyer les données de taille en octets. Nous pouvons changer cela en 1024
pour le renvoyer en kilo-octets.
Exemple :
db.runCommand( { collStats : "posts", scale: 1024 } )
Résultat (partiel) :
{
"ns" : "krankykranes.posts",
"size" : 2,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36,
"freeStorageSize" : 16,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
Le $bsonSize
Opérateur
Le $bsonSize
L'opérateur de pipeline d'agrégation a été introduit dans MongoDB 4.4 dans le but de renvoyer la taille d'un document BSON.
Vous pouvez utiliser $bsonSize
pour retourner la taille totale de tous les documents de la collection en la combinant avec le $group
et $sum
opérateurs.
Exemple :
db.posts.aggregate([
{
$group: {
"_id": null,
"rootSize": { $sum: { $bsonSize: "$$ROOT" } }
}
}
])
Résultat :
{ "_id" : null, "rootSize" : 3012 }