MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

5 Möglichkeiten, die Größe einer Sammlung in MongoDB zu überprüfen

In diesem Artikel stelle ich 5 Möglichkeiten vor, mit denen Sie die Größe einer MongoDB-Sammlung überprüfen können, wenn Sie die Mongo-Shell verwenden.

Die dataSize() Methode

Der wahrscheinlich schnellste und einfachste Weg, die Größe einer MongoDB-Sammlung zu überprüfen, ist die Verwendung von db.collection.dataSize() Methode. Diese Methode gibt die Größe der Sammlung in Byte zurück.

Um diese Methode aufzurufen, ersetzen Sie einfach collection mit dem Namen der Sammlung, die Sie überprüfen möchten.

Beispiel:

db.posts.dataSize()

Ergebnis:

3012

Dieses Beispiel prüft die Größe einer Sammlung namens posts . Es ist nur eine kleine Sammlung mit einer Handvoll kleiner Dokumente und daher nur 3012 Byte groß.

Die totalSize() Methode

Die db.collection.totalSize() -Methode gibt die Gesamtgröße der Daten in der Sammlung in Byte plus die Größe jedes Indexes in der Sammlung zurück.

Verwenden Sie daher diese Methode, wenn Sie die Gesamtgröße aller Indizes wissen möchten.

Beispiel:

db.posts.totalSize()

Ergebnis:

114688

Dies ist dieselbe Sammlung, mit der wir das vorherige Beispiel ausgeführt haben. Die posts Die Sammlung hat drei Indizes (einschließlich des auf der _id Feld), und wir können sehen, dass die Gesamtgröße deutlich höher ist als die Sammlungsgröße ohne die Indizes.

Die stats() Methode

Wenn Sie mehr als nur die Sammlungsgröße benötigen, können Sie db.collection.stats() ausprobieren Methode.

Diese Methode gibt Statistiken über die Sammlung zurück (einschließlich ihrer Größe).

Beispiel:

db.posts.stats()

Ergebnis (teilweise):

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

Diese Methode gibt viele Daten zurück, daher gebe ich hier nur den ersten kleinen Teil zurück. Die Sammlungsgröße wird oben in den Ergebnissen unter size aufgeführt Feld.

Standardmäßig gibt diese Methode Größendaten in Bytes zurück. Sie können es so ändern, dass es in Kilobyte angezeigt wird, wenn Sie dies bevorzugen. Verwenden Sie dazu die scale Parameter mit dem Wert 1024 .

Beispiel:

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

Ergebnis (teilweise):

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

Die db.collection.stats() -Methode stellt einen Wrapper um collStats bereit Befehl (unten).

Die collStats Befehl

Wie bereits erwähnt, die db.collection.stats() Methode ist ein Wrapper für collStats Diagnosebefehl. Dieser Befehl gibt Statistiken über die Sammlung zurück (einschließlich ihrer Größe).

Beispiel:

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

Ergebnis (teilweise):

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

Wie bei stats() -Methode gibt dieser Befehl eine Menge Daten zurück, also habe ich nur ein paar Sachen von oben genommen.

Beachten Sie, dass ich eine scale bereitgestellt habe von 1 in diesem Beispiel, um Größendaten in Bytes zurückzugeben. Wir können das zu 1024 ändern um es in Kilobyte zurückzugeben.

Beispiel:

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

Ergebnis (teilweise):

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

Die $bsonSize Betreiber

Die $bsonSize Der Aggregation-Pipeline-Operator wurde in MongoDB 4.4 eingeführt, um die Größe eines BSON-Dokuments zurückzugeben.

Sie können $bsonSize verwenden um die Gesamtgröße aller Dokumente in der Sammlung zurückzugeben, indem sie mit $group kombiniert werden und $sum Betreiber.

Beispiel:

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

Ergebnis:

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