sql >> Database teknologi >  >> NoSQL >> MongoDB

5 måder at kontrollere størrelsen på en samling i MongoDB

I denne artikel præsenterer jeg 5 måder, du kan bruge til at kontrollere størrelsen af ​​en MongoDB-samling, når du bruger mongo-skallen.

dataSize() Metode

Den sandsynligvis hurtigste og nemmeste måde at kontrollere størrelsen af ​​en MongoDB-samling på er at bruge db.collection.dataSize() metode. Denne metode returnerer størrelsen af ​​samlingen i bytes.

For at kalde denne metode skal du blot erstatte collection med navnet på den samling, du gerne vil tjekke.

Eksempel:

db.posts.dataSize()

Resultat:

3012

Dette eksempel kontrollerer størrelsen af ​​en samling kaldet posts . Det er kun en lille samling med en håndfuld små dokumenter, så størrelsen er kun 3012 bytes.

totalSize() Metode

db.collection.totalSize() metoden returnerer den samlede størrelse i bytes af dataene i samlingen plus størrelsen af ​​hvert indeks i samlingen.

Brug derfor denne metode, hvis du vil vide den samlede størrelse, der inkluderer alle indekser.

Eksempel:

db.posts.totalSize()

Resultat:

114688

Dette er den samme samling, som vi kørte det forrige eksempel imod. posts samlingen har tre indekser (inklusive det på _id felt), og vi kan se, at den samlede størrelse er væsentligt højere end samlingsstørrelsen uden indekserne.

stats() Metode

Hvis du har brug for mere end blot samlingens størrelse, kan du prøve db.collection.stats() metode.

Denne metode returnerer statistik om samlingen (inklusive dens størrelse).

Eksempel:

db.posts.stats()

Resultat (delvis):

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

Denne metode returnerer en masse data, så jeg returnerer kun den første lille del her. Samlingens størrelse er angivet nær toppen af ​​resultaterne i size felt.

Som standard returnerer denne metode størrelsesdata i bytes. Du kan ændre det, så det rapporterer i kilobyte, hvis du foretrækker det. For at gøre dette skal du bruge scale parameter med en værdi på 1024 .

Eksempel:

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

Resultat (delvis):

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

db.collection.stats() metoden giver en indpakning omkring collStats kommando (nedenfor).

collStats Kommando

Som nævnt er db.collection.stats() metoden er en indpakning for collStats diagnostisk kommando. Denne kommando returnerer statistik om samlingen (inklusive dens størrelse).

Eksempel:

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

Resultat (delvis):

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

Som med stats() metode, returnerer denne kommando en masse data, så jeg har lige fået fat i nogle ting fra toppen.

Bemærk, at jeg har angivet en scale af 1 i dette eksempel for at returnere størrelsesdata i bytes. Vi kan ændre det til 1024 for at returnere den i kilobyte.

Eksempel:

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

Resultat (delvis):

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

$bsonSize Operatør

$bsonSize aggregeringspipeline-operatør blev introduceret i MongoDB 4.4 med det formål at returnere størrelsen af ​​et BSON-dokument.

Du kan bruge $bsonSize at returnere den samlede størrelse af alle dokumenter i samlingen ved at kombinere den med $group og $sum operatører.

Eksempel:

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

Resultat:

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

  1. Hvordan bruger man Redis i et C++ program?

  2. Apache HBase I/O – HFile

  3. mongoDB array paginering

  4. Tilpassede brugerforbindelsesstrenge til MongoDB-forekomster med godkendelse