sql >> Databáze >  >> NoSQL >> MongoDB

5 způsobů, jak zkontrolovat velikost sbírky v MongoDB

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 }

  1. Google Cloud Mongo DB:Externí IP se nepřipojuje

  2. Vezmeme součet sloupce v MongoDB

  3. insertMany Handle Duplicate Errors

  4. Zásuvka modulu nebyla nalezena lua