MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

5 façons de vérifier la taille d'une collection dans MongoDB

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 }