MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

5 начина да проверите размера на колекция в MongoDB

В тази статия представям 5 начина, които можете да използвате, за да проверите размера на колекция MongoDB, когато използвате mongo shell.

dataSize() Метод

Вероятно най-бързият и лесен начин да проверите размера на колекция MongoDB е да използвате db.collection.dataSize() метод. Този метод връща размера на колекцията в байтове.

За да извикате този метод, просто заменете collection с името на колекцията, която искате да проверите.

Пример:

db.posts.dataSize()

Резултат:

3012

Този пример проверява размера на колекция, наречена posts . Това е само малка колекция с шепа малки документи, така че размерът е само 3012 байта.

totalSize() Метод

db.collection.totalSize() методът връща общия размер в байтове на данните в колекцията плюс размера на всеки индекс в колекцията.

Затова използвайте този метод, ако искате да знаете общия размер, който включва всички индекси.

Пример:

db.posts.totalSize()

Резултат:

114688

Това е същата колекция, срещу която използвахме предишния пример. posts колекцията има три индекса (включително този на _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 Операторът на конвейер за агрегиране беше въведен в MongoDB 4.4 с цел връщане на размера на BSON документ.

Можете да използвате $bsonSize за да върне общия размер на всички документи в колекцията, като го комбинирате с $group и $sum оператори.

Пример:

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

Резултат:

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

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Внедряване на оценка на обекта на израз на заявка, подобна на goMongoDB

  2. Направете нещо, ако нищо не е намерено с .find() mongoose

  3. импортиране на JSON в mongoDB с помощта на pymongo

  4. MongoDB $dayOfMonth

  5. MongoDb:Предимство от използването на ObjectID спрямо низ, съдържащ идентификатор?