MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

5 cách để kiểm tra kích thước của một bộ sưu tập trong MongoDB

Trong bài viết này, tôi trình bày 5 cách mà bạn có thể sử dụng để kiểm tra kích thước của bộ sưu tập MongoDB khi sử dụng mongo shell.

dataSize() Phương pháp

Có lẽ cách nhanh nhất và dễ nhất để kiểm tra kích thước của bộ sưu tập MongoDB là sử dụng db.collection.dataSize() phương pháp. Phương thức này trả về kích thước của tập hợp tính bằng byte.

Để gọi phương thức này, chỉ cần thay thế collection với tên của bộ sưu tập mà bạn muốn kiểm tra.

Ví dụ:

db.posts.dataSize()

Kết quả:

3012

Ví dụ này kiểm tra kích thước của một bộ sưu tập có tên là posts . Đây chỉ là một bộ sưu tập nhỏ với một số ít tài liệu nhỏ và do đó kích thước chỉ là 3012 byte.

totalSize() Phương pháp

db.collection.totalSize() phương thức trả về tổng kích thước tính bằng byte của dữ liệu trong tập hợp cộng với kích thước của mọi chỉ mục trong tập hợp.

Do đó, hãy sử dụng phương pháp này nếu bạn muốn biết tổng kích thước bao gồm tất cả các chỉ mục.

Ví dụ:

db.posts.totalSize()

Kết quả:

114688

Đây là cùng một bộ sưu tập mà chúng tôi đã chạy ví dụ trước. posts bộ sưu tập có ba chỉ mục (bao gồm một chỉ mục trên _id ), và chúng ta có thể thấy rằng tổng kích thước cao hơn đáng kể so với kích thước tập hợp không có chỉ mục.

stats() Phương pháp

Nếu bạn cần nhiều hơn kích thước bộ sưu tập, bạn có thể thử db.collection.stats() phương pháp.

Phương thức này trả về thống kê về bộ sưu tập (bao gồm cả kích thước của nó).

Ví dụ:

db.posts.stats()

Kết quả (một phần):

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

Phương thức này trả về rất nhiều dữ liệu, vì vậy tôi chỉ trả lại phần nhỏ đầu tiên ở đây. Kích thước bộ sưu tập được liệt kê gần đầu kết quả, trong size trường.

Theo mặc định, phương thức này trả về dữ liệu kích thước tính bằng byte. Bạn có thể thay đổi nó để nó báo cáo bằng kilobyte nếu bạn muốn. Để thực hiện việc này, hãy sử dụng scale tham số có giá trị 1024 .

Ví dụ:

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

Kết quả (một phần):

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

db.collection.stats() phương thức cung cấp một trình bao bọc xung quanh collStats lệnh (bên dưới).

collStats Lệnh

Như đã đề cập, db.collection.stats() phương thức là một trình bao bọc cho collStats lệnh chẩn đoán. Lệnh này trả về thống kê về bộ sưu tập (bao gồm cả kích thước của nó).

Ví dụ:

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

Kết quả (một phần):

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

Như với stats() , lệnh này trả về rất nhiều dữ liệu, vì vậy tôi vừa tóm tắt một số nội dung ở trên cùng.

Lưu ý rằng tôi đã cung cấp một scale trong tổng số 1 trong ví dụ này để trả về dữ liệu kích thước tính bằng byte. Chúng tôi có thể thay đổi điều đó thành 1024 để trả lại nó bằng kilobyte.

Ví dụ:

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

Kết quả (một phần):

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

$bsonSize Nhà điều hành

$bsonSize nhà điều hành đường ống tổng hợp đã được giới thiệu trong MongoDB 4.4 với mục đích trả về kích thước của tài liệu BSON.

Bạn có thể sử dụng $bsonSize để trả về tổng kích thước của tất cả các tài liệu trong bộ sưu tập bằng cách kết hợp nó với $group$sum toán tử.

Ví dụ:

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

Kết quả:

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

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Xây dựng chỉ mục MongoDB - Ngăn người dùng kích hoạt các bản dựng mới

  2. Những cân nhắc cơ bản khi sao lưu MongoDB

  3. Truy vấn kéo dài số Java Mongodb

  4. Sự khác biệt giữa save và insert trong Mongo DB là gì?

  5. Nhập tệp CSV vào MongoDB với mongoimport