Latest web development tutorials

MongoDB GridFS

GridFS untuk menyimpan dan memulihkan mereka lebih dari 16 juta (batas file BSON) file (seperti: gambar, audio, video, dll).

Salah satu cara adalah penyimpanan file GridFS, tetapi dalam koleksi disimpan dalam MonoDB.

GridFS memori lebih baik dari dokumen 16M.

GridFS akan menargetkan file besar menjadi beberapa potongan (file fragmen) yang lebih kecil, biasanya 256k /, satu untuk setiap potongan sebagai dokumen MongoDB (dokumen) disimpan dalam koleksi potongan.

GridFS dua koleksi untuk menyimpan file: fs.files dan fs.chunks.

Isi sebenarnya dari setiap file disimpan dalam potongan (data biner), data meta dan dokumen yang berkaitan dengan (nama file, content_type, serta atribut yang ditetapkan pengguna) akan disimpan dalam file dalam koleksi.

Berikut ini adalah kumpulan dokumen fs.files sederhana:

{
   "filename": "test.txt",
   "chunkSize": NumberInt(261120),
   "uploadDate": ISODate("2014-04-13T11:32:33.557Z"),
   "md5": "7b762939321e146569b07f72c62cca4f",
   "length": NumberInt(646)
}

Berikut ini adalah kumpulan dokumen fs.chunks sederhana:

{
   "files_id": ObjectId("534a75d19f54bfec8a2fe44b"),
   "n": NumberInt(0),
   "data": "Mongo Binary Data"
}

GridFS Add File

Sekarang kita menggunakan GridFS put perintah untuk menyimpan file mp3. Sebut MongoDB direktori instalasi bin alat mongofiles.exe.

Buka command prompt, masuk ke direktori bin direktori instalasi MongoDB, cari mongofiles.exe, dan masukkan kode berikut:

>mongofiles.exe -d gridfs put song.mp3

GridFS adalah nama dari file data disimpan. Jika database tidak ada, MongoDB akan otomatis dibuat. .mp3 Adalah nama file audio.

Gunakan perintah berikut untuk melihat dokumen dalam file database:

>db.fs.files.find()

Setelah menjalankan perintah di atas mengembalikan data dokumen berikut:

{
   _id: ObjectId('534a811bf8b4aa4d33fdf94d'), 
   filename: "song.mp3", 
   chunkSize: 261120, 
   uploadDate: new Date(1397391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41",
   length: 10401959 
}

Kita bisa melihat semua blok fs.chunks set, kita mendapatkan dokumen nilai _id berikut, kita bisa mendapatkan blok (potongan) data sesuai dengan _id ini:

>db.fs.chunks.find({files_id:ObjectId('534a811bf8b4aa4d33fdf94d')})

Contoh di atas, query mengembalikan data 40 dokumen, yang berarti bahwa file mp3 disimpan dalam 40 blok.