Pada artikel ini saya menyajikan 5 cara yang dapat Anda gunakan untuk memeriksa ukuran koleksi MongoDB saat menggunakan shell mongo.
dataSize()
Metode
Mungkin cara tercepat dan termudah untuk memeriksa ukuran koleksi MongoDB adalah dengan menggunakan db.collection.dataSize()
metode. Metode ini mengembalikan ukuran koleksi dalam byte.
Untuk memanggil metode ini, cukup ganti collection
dengan nama koleksi yang ingin Anda periksa.
Contoh:
db.posts.dataSize()
Hasil:
3012
Contoh ini memeriksa ukuran koleksi yang disebut posts
. Ini hanya kumpulan kecil dengan segelintir dokumen kecil, sehingga ukurannya hanya 3012 byte.
totalSize()
Metode
db.collection.totalSize()
metode mengembalikan ukuran total dalam byte data dalam koleksi ditambah ukuran setiap indeks pada koleksi.
Oleh karena itu, gunakan metode ini jika Anda ingin mengetahui ukuran total yang mencakup semua indeks.
Contoh:
db.posts.totalSize()
Hasil:
114688
Ini adalah koleksi yang sama yang kami gunakan pada contoh sebelumnya. posts
koleksi memiliki tiga indeks (termasuk yang ada di _id
field), dan kita dapat melihat bahwa ukuran total secara signifikan lebih tinggi daripada ukuran koleksi tanpa indeks.
The stats()
Metode
Jika Anda membutuhkan lebih dari sekadar ukuran koleksi, Anda dapat mencoba db.collection.stats()
metode.
Metode ini mengembalikan statistik tentang koleksi (termasuk ukurannya).
Contoh:
db.posts.stats()
Hasil (sebagian):
{
"ns" : "krankykranes.posts",
"size" : 3012,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36864,
"freeStorageSize" : 16384,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
Metode ini mengembalikan banyak data, jadi saya hanya mengembalikan sebagian kecil pertama di sini. Ukuran koleksi tercantum di dekat bagian atas hasil, di size
lapangan.
Secara default, metode ini mengembalikan data ukuran dalam byte. Anda dapat mengubahnya sehingga dilaporkan dalam kilobyte jika Anda mau. Untuk melakukannya, gunakan scale
parameter dengan nilai 1024
.
Contoh:
db.posts.stats( { scale: 1024 } )
Hasil (sebagian):
{
"ns" : "krankykranes.posts",
"size" : 2,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36,
"freeStorageSize" : 16,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
db.collection.stats()
metode menyediakan pembungkus di sekitar collStats
perintah (di bawah).
collStats
Perintah
Seperti disebutkan, db.collection.stats()
metode adalah pembungkus untuk collStats
perintah diagnostik. Perintah ini mengembalikan statistik tentang koleksi (termasuk ukurannya).
Contoh:
db.runCommand( { collStats : "posts", scale: 1 } )
Hasil (sebagian):
{
"ns" : "krankykranes.posts",
"size" : 3012,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36864,
"freeStorageSize" : 16384,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
Seperti halnya stats()
metode, perintah ini mengembalikan banyak data, jadi saya baru saja mengambil beberapa hal dari atas.
Perhatikan bahwa saya memberikan scale
dari 1
dalam contoh ini untuk mengembalikan data ukuran dalam byte. Kita dapat mengubahnya menjadi 1024
untuk mengembalikannya dalam kilobyte.
Contoh:
db.runCommand( { collStats : "posts", scale: 1024 } )
Hasil (sebagian):
{
"ns" : "krankykranes.posts",
"size" : 2,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36,
"freeStorageSize" : 16,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
$bsonSize
Operator
$bsonSize
operator pipa agregasi diperkenalkan di MongoDB 4.4 untuk tujuan mengembalikan ukuran dokumen BSON.
Anda dapat menggunakan $bsonSize
untuk mengembalikan ukuran total semua dokumen dalam koleksi dengan menggabungkannya dengan $group
dan $sum
operator.
Contoh:
db.posts.aggregate([
{
$group: {
"_id": null,
"rootSize": { $sum: { $bsonSize: "$$ROOT" } }
}
}
])
Hasil:
{ "_id" : null, "rootSize" : 3012 }