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 }