MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Objek MongoDB.bsonSize()

Di MongoDB, Anda dapat menggunakan Object.bsonSize() metode untuk mengembalikan ukuran dokumen dalam byte.

Contoh

Misalkan kita memiliki koleksi yang disebut bars dengan dokumen berikut:

{
	"_id" : 1,
	"name" : "Boardwalk Social",
	"location" : {
		"type" : "Point",
		"coordinates" : [
			-16.919297718553366,
			145.77675259719823
		]
	},
	"categories" : [
		"Bar",
		"Restaurant",
		"Hotel"
	],
	"reviews" : [
		{
			"name" : "Steve",
			"date" : "20 December, 2020",
			"rating" : 5,
			"comments" : "Great vibe."
		},
		{
			"name" : "Lisa",
			"date" : "25 October, 2020",
			"rating" : 3,
			"comments" : "They just raised their prices :("
		},
		{
			"name" : "Kim",
			"date" : "21 October, 2020",
			"rating" : 4,
			"comments" : "Nice for Friday happy hour"
		}
	]
}

Kita dapat melihat bahwa location lapangan berisi dokumen. Dan reviews bidang berisi larik dokumen.

Pertama, mari kita gunakan Object.bsonSize() metode untuk mengembalikan ukuran dokumen tingkat atas.

Object.bsonsize(db.bars.findOne())

Hasil:

502

Kita dapat melihat bahwa keseluruhan dokumen adalah 502 byte.

Perhatikan bahwa saya menggunakan findOne() dan bukan find() . Alasannya adalah karena find() mengembalikan kursor, bukan dokumen itu sendiri. findOne() metode, di sisi lain, mengembalikan dokumen yang sebenarnya dan karena itu hasilnya harus akurat.

Subdokumen

Mari kita gunakan Object.bsonSize() untuk memeriksa ukuran location lapangan.

Kita dapat menggunakan notasi titik untuk mendapatkan nilai location bidang:

Object.bsonsize(
  db.bars.findOne().location
  )

Hasil:

61

Dalam hal ini, dokumen adalah 61 byte.

Untuk memastikan, inilah yang sebenarnya kami berikan ke Object.bsonSize() metode:

db.bars.findOne().location

Hasil:

{
	"type" : "Point",
	"coordinates" : [
		-16.919297718553366,
		145.77675259719823
	]
}

Jadi itu adalah dokumen yang berukuran 61 byte.

Dokumen dalam Array

Kami juga dapat mengambil ukuran dokumen yang merupakan elemen array.

Contoh:

Object.bsonsize(
  db.bars.findOne().reviews[0]
  )

Hasil:

91

Array MongoDB berbasis nol, jadi dokumen ini adalah tinjauan pertama.

Kita dapat menjalankan argumen itu sendiri untuk melihat seluruh dokumen:

db.bars.findOne().reviews[0]

Hasil:

{
	"name" : "Steve",
	"date" : "20 December, 2020",
	"rating" : 5,
	"comments" : "Great vibe."
}

Proyeksi

Kita dapat menggunakan Object.bsonSize() metode untuk mengembalikan ukuran dokumen yang dikembalikan oleh proyeksi. Untuk melakukan ini, kita hanya perlu memberikan proyeksi dalam kueri kita.

Contoh:

Object.bsonsize(
    db.bars.findOne(
      {},
      {
        _id: 0,
        location: 1
      }
    )
)

Hasil:

76

Dalam hal ini, kami mendapatkan ukuran 76.

Anda mungkin telah memperhatikan bahwa dalam contoh kami sebelumnya, location bidang adalah 61 byte, tetapi sekarang menjadi 76.

Ada apa?

Nah, saat kita menggunakan proyeksi, seperti dalam contoh ini, kita sebenarnya mengembalikan dokumen luar yang berisi location nama bidang serta nilainya.

Inilah yang dihasilkan oleh proyeksi ini:

db.bars.findOne(
    {},
    {
      _id: 0,
      location: 1
    }
  )

Hasil:

{
	"location" : {
		"type" : "Point",
		"coordinates" : [
			-16.919297718553366,
			145.77675259719823
		]
	}
}

Namun, dalam contoh kami sebelumnya, kueri kami menjadi seperti ini:

db.bars.findOne().location

Dan mengembalikan ini:

{
	"type" : "Point",
	"coordinates" : [
		-16.919297718553366,
		145.77675259719823
	]
}

Jadi contoh proyeksi kami mengembalikan dokumen yang lebih besar, karena fakta bahwa itu mengembalikan nama bidang dan nilainya. Dan contoh kami sebelumnya mengembalikan dokumen yang lebih kecil karena fakta bahwa itu hanya mengembalikan nilainya.

Pipa Agregasi

Saat menggunakan pipa agregasi, Anda dapat menggunakan $bsonSize operator untuk mendapatkan ukuran dokumen.

Anda juga dapat menggunakan $binarySize operator untuk mendapatkan ukuran string atau konten nilai biner dalam byte.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pencocokan data musim semi dan Filter Array Bersarang

  2. MongoDB:bagaimana cara mengurai tanggal dalam versi 3.6 mongoDb?

  3. Bagaimana cara mengembalikan format tanggal ISO dalam PHP untuk MongoDB?

  4. Kiat untuk Mengelola Konfigurasi Basis Data Anda

  5. Pengikisan dan Perayapan Web dengan Scrapy dan MongoDB