この記事では、mongoシェルを使用するときにMongoDBコレクションのサイズを確認するために使用できる5つの方法を紹介します。
dataSize()
方法
おそらく、MongoDBコレクションのサイズを確認する最も速くて簡単な方法は、db.collection.dataSize()
を使用することです。 方法。このメソッドは、コレクションのサイズをバイト単位で返します。
このメソッドを呼び出すには、collection
を置き換えるだけです。 確認したいコレクションの名前を付けてください。
例:
db.posts.dataSize()
結果:
3012
この例では、posts
というコレクションのサイズを確認します 。ほんの一握りの小さなドキュメントを含む小さなコレクションなので、サイズはわずか3012バイトです。
totalSize()
方法
db.collection.totalSize()
メソッドは、コレクション内のデータの合計サイズとコレクション内のすべてのインデックスのサイズをバイト単位で返します。
したがって、すべてのインデックスを含む合計サイズを知りたい場合は、この方法を使用してください。
例:
db.posts.totalSize()
結果:
114688
これは、前の例で実行したのと同じコレクションです。 posts
コレクションには3つのインデックスがあります(_id
のインデックスを含む) フィールド)、合計サイズがインデックスなしのコレクションサイズよりも大幅に大きいことがわかります。
stats()
方法
コレクションのサイズ以上のものが必要な場合は、db.collection.stats()
を試すことができます。 メソッド。
このメソッドは、コレクションに関する統計(サイズを含む)を返します。
例:
db.posts.stats()
結果(部分的):
{
"ns" : "krankykranes.posts",
"size" : 3012,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36864,
"freeStorageSize" : 16384,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
このメソッドは大量のデータを返すため、ここでは最初の小さな部分のみを返します。コレクションのサイズは、結果の上部近くのsize
に表示されます。 フィールド。
デフォルトでは、このメソッドはサイズデータをバイト単位で返します。必要に応じて、キロバイト単位でレポートするように変更できます。これを行うには、scale
を使用します 値が1024
のパラメータ 。
例:
db.posts.stats( { scale: 1024 } )
結果(部分的):
{
"ns" : "krankykranes.posts",
"size" : 2,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36,
"freeStorageSize" : 16,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
db.collection.stats()
メソッドは、collStats
のラッパーを提供します コマンド(下)。
collStats
コマンド
前述のように、db.collection.stats()
メソッドはcollStats
のラッパーです 診断コマンド。このコマンドは、コレクションに関する統計(サイズを含む)を返します。
例:
db.runCommand( { collStats : "posts", scale: 1 } )
結果(部分的):
{
"ns" : "krankykranes.posts",
"size" : 3012,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36864,
"freeStorageSize" : 16384,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
stats()
と同様 メソッドの場合、このコマンドは大量のデータを返すので、上からいくつかのものを取得しました。
scale
を提供したことに注意してください 1
の この例では、サイズデータをバイト単位で返します。これを1024
に変更できます キロバイト単位で返します。
例:
db.runCommand( { collStats : "posts", scale: 1024 } )
結果(部分的):
{
"ns" : "krankykranes.posts",
"size" : 2,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36,
"freeStorageSize" : 16,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
$bsonSize
オペレーター
$bsonSize
集約パイプライン演算子は、BSONドキュメントのサイズを返す目的でMongoDB4.4で導入されました。
$bsonSize
を使用できます $group
と組み合わせて、コレクション内のすべてのドキュメントの合計サイズを返します。 および$sum
演算子。
例:
db.posts.aggregate([
{
$group: {
"_id": null,
"rootSize": { $sum: { $bsonSize: "$$ROOT" } }
}
}
])
結果:
{ "_id" : null, "rootSize" : 3012 }