V tomto článku uvádím 5 způsobů, které můžete použít ke kontrole velikosti kolekce MongoDB při použití prostředí mongo.
dataSize() Metoda
Pravděpodobně nejrychlejší a nejjednodušší způsob, jak zkontrolovat velikost kolekce MongoDB, je použít db.collection.dataSize() metoda. Tato metoda vrací velikost kolekce v bajtech.
Chcete-li tuto metodu zavolat, jednoduše nahraďte collection s názvem sbírky, kterou chcete zkontrolovat.
Příklad:
db.posts.dataSize() Výsledek:
3012
Tento příklad kontroluje velikost kolekce nazvané posts . Je to jen malá sbírka s hrstkou malých dokumentů, takže velikost je pouze 3012 bajtů.
totalSize() Metoda
db.collection.totalSize() metoda vrací celkovou velikost v bajtech dat v kolekci plus velikost každého indexu v kolekci.
Proto použijte tuto metodu, pokud chcete znát celkovou velikost, která zahrnuje všechny indexy.
Příklad:
db.posts.totalSize() Výsledek:
114688
Toto je stejná sbírka, proti které jsme spustili předchozí příklad. posts kolekce má tři indexy (včetně toho na _id pole) a můžeme vidět, že celková velikost je výrazně vyšší než velikost kolekce bez indexů.
stats() Metoda
Pokud potřebujete více než jen velikost kolekce, můžete zkusit db.collection.stats() metoda.
Tato metoda vrací statistiky o kolekci (včetně její velikosti).
Příklad:
db.posts.stats() Výsledek (částečný):
{
"ns" : "krankykranes.posts",
"size" : 3012,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36864,
"freeStorageSize" : 16384,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
Tato metoda vrací mnoho dat, takže zde vracím pouze první malou část. Velikost kolekce je uvedena v horní části výsledků v poli size pole.
Ve výchozím nastavení tato metoda vrací data o velikosti v bajtech. Pokud chcete, můžete jej změnit tak, aby se uváděl v kilobajtech. K tomu použijte scale parametr s hodnotou 1024 .
Příklad:
db.posts.stats( { scale: 1024 } ) Výsledek (částečný):
{
"ns" : "krankykranes.posts",
"size" : 2,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36,
"freeStorageSize" : 16,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
db.collection.stats() metoda poskytuje obal kolem collStats příkaz (níže).
Položka collStats Příkaz
Jak již bylo zmíněno, db.collection.stats() metoda je obal pro collStats diagnostický příkaz. Tento příkaz vrací statistiky o kolekci (včetně její velikosti).
Příklad:
db.runCommand( { collStats : "posts", scale: 1 } ) Výsledek (částečný):
{
"ns" : "krankykranes.posts",
"size" : 3012,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36864,
"freeStorageSize" : 16384,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
...
Stejně jako u stats() Tento příkaz vrací spoustu dat, takže jsem právě sebral nějaké věci shora.
Všimněte si, že jsem uvedl scale z 1 v tomto příkladu vrátit data o velikosti v bajtech. Můžeme to změnit na 1024 vrátit ji v kilobajtech.
Příklad:
db.runCommand( { collStats : "posts", scale: 1024 } ) Výsledek (částečný):
{
"ns" : "krankykranes.posts",
"size" : 2,
"count" : 27,
"avgObjSize" : 111,
"storageSize" : 36,
"freeStorageSize" : 16,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
... $bsonSize Operátor
$bsonSize Operátor agregačního kanálu byl zaveden v MongoDB 4.4 za účelem vrácení velikosti dokumentu BSON.
Můžete použít $bsonSize vrátit celkovou velikost všech dokumentů v kolekci tím, že ji zkombinujete se $group a $sum operátory.
Příklad:
db.posts.aggregate([
{
$group: {
"_id": null,
"rootSize": { $sum: { $bsonSize: "$$ROOT" } }
}
}
]) Výsledek:
{ "_id" : null, "rootSize" : 3012 }