MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

5 sposobów na sprawdzenie rozmiaru kolekcji w MongoDB

W tym artykule przedstawiam 5 sposobów, za pomocą których można sprawdzić rozmiar kolekcji MongoDB podczas korzystania z powłoki mongo.

dataSize() Metoda

Prawdopodobnie najszybszym i najłatwiejszym sposobem sprawdzenia rozmiaru kolekcji MongoDB jest użycie db.collection.dataSize() metoda. Ta metoda zwraca rozmiar kolekcji w bajtach.

Aby wywołać tę metodę, po prostu zastąp collection z nazwą kolekcji, którą chcesz sprawdzić.

Przykład:

db.posts.dataSize()

Wynik:

3012

Ten przykład sprawdza rozmiar kolekcji o nazwie posts . To tylko niewielka kolekcja z kilkoma małymi dokumentami, a więc rozmiar to tylko 3012 bajtów.

totalSize() Metoda

db.collection.totalSize() Metoda zwraca całkowity rozmiar w bajtach danych w kolekcji plus rozmiar każdego indeksu w kolekcji.

Dlatego użyj tej metody, jeśli chcesz poznać całkowity rozmiar, który obejmuje wszystkie indeksy.

Przykład:

db.posts.totalSize()

Wynik:

114688

Jest to ta sama kolekcja, na której uruchomiliśmy poprzedni przykład. posts kolekcja ma trzy indeksy (w tym ten w _id pole) i widzimy, że całkowity rozmiar jest znacznie większy niż rozmiar kolekcji bez indeksów.

stats() Metoda

Jeśli potrzebujesz więcej niż tylko rozmiaru kolekcji, możesz wypróbować db.collection.stats() metoda.

Ta metoda zwraca statystyki dotyczące kolekcji (w tym jej rozmiaru).

Przykład:

db.posts.stats()

Wynik (częściowy):

{
	"ns" : "krankykranes.posts",
	"size" : 3012,
	"count" : 27,
	"avgObjSize" : 111,
	"storageSize" : 36864,
	"freeStorageSize" : 16384,
	"capped" : false,
	"wiredTiger" : {
		"metadata" : {
			"formatVersion" : 1
		},
...

Ta metoda zwraca dużo danych, więc zwracam tutaj tylko pierwszą małą część. Rozmiar kolekcji znajduje się u góry wyników, w size pole.

Domyślnie ta metoda zwraca dane o rozmiarze w bajtach. Możesz to zmienić tak, aby raportował w kilobajtach, jeśli wolisz. Aby to zrobić, użyj scale parametr o wartości 1024 .

Przykład:

db.posts.stats( { scale: 1024 } )

Wynik (częściowy):

{
	"ns" : "krankykranes.posts",
	"size" : 2,
	"count" : 27,
	"avgObjSize" : 111,
	"storageSize" : 36,
	"freeStorageSize" : 16,
	"capped" : false,
	"wiredTiger" : {
		"metadata" : {
			"formatVersion" : 1
		},
...

db.collection.stats() Metoda zapewnia opakowanie wokół collStats polecenie (poniżej).

collStats Polecenie

Jak wspomniano, db.collection.stats() metoda jest opakowaniem dla collStats polecenie diagnostyczne. To polecenie zwraca statystyki dotyczące kolekcji (w tym jej rozmiaru).

Przykład:

db.runCommand( { collStats : "posts", scale: 1 } )

Wynik (częściowy):

{
	"ns" : "krankykranes.posts",
	"size" : 3012,
	"count" : 27,
	"avgObjSize" : 111,
	"storageSize" : 36864,
	"freeStorageSize" : 16384,
	"capped" : false,
	"wiredTiger" : {
		"metadata" : {
			"formatVersion" : 1
		},
...

Podobnie jak w przypadku stats() metoda, to polecenie zwraca dużo danych, więc po prostu wziąłem trochę rzeczy z góry.

Zauważ, że podałem scale z 1 w tym przykładzie, aby zwrócić dane o rozmiarze w bajtach. Możemy to zmienić na 1024 aby zwrócić go w kilobajtach.

Przykład:

db.runCommand( { collStats : "posts", scale: 1024 } )

Wynik (częściowy):

{
	"ns" : "krankykranes.posts",
	"size" : 2,
	"count" : 27,
	"avgObjSize" : 111,
	"storageSize" : 36,
	"freeStorageSize" : 16,
	"capped" : false,
	"wiredTiger" : {
		"metadata" : {
			"formatVersion" : 1
		},
...

$bsonSize Operator

$bsonSize Operator potoku agregacji został wprowadzony w MongoDB 4.4 w celu zwracania rozmiaru dokumentu BSON.

Możesz użyć $bsonSize aby zwrócić całkowity rozmiar wszystkich dokumentów w kolekcji, łącząc go z $group i $sum operatorów.

Przykład:

db.posts.aggregate([
  {
    $group: {
      "_id": null,
      "rootSize": { $sum: { $bsonSize: "$$ROOT" } }
    }
  }
])

Wynik:

{ "_id" : null, "rootSize" : 3012 }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak przechowywać/wyświetlać akapity za pomocą mongodb?

  2. MongoDB $zakres

  3. (węzeł:3341) Ostrzeżenie o wycofaniu:mangusta:mpromise

  4. Usuń wpis z tablicy za pomocą sterownika MongoDB-Java

  5. MongoDB dropIndex()