MongoDB GridFS
GridFS digunakan untuk menyimpan dan memulihkan fail (seperti gambar, audio, video, dll.) yang melebihi 16M (had fail BSON).
GridFS juga merupakan cara penyimpanan fail, tetapi ia disimpan dalam koleksi MonoDB.
GridFS boleh menyimpan fail yang lebih besar daripada 16M dengan lebih baik.
GridFS akan membahagikan objek fail besar kepada berbilang ketulan kecil (serpihan fail), secara amnya 256k/keping Setiap ketul akan disimpan dalam koleksi ketulan sebagai dokumen dalam MongoDB.
GridFS menggunakan dua koleksi untuk menyimpan fail: fs.files dan fs.chunks.
Kandungan sebenar setiap fail disimpan dalam ketulan (data binari), dan data meta yang berkaitan dengan fail (nama fail, content_type dan atribut yang ditentukan pengguna) akan disimpan dalam koleksi fail.
Berikut ialah dokumen pengumpulan fs.files yang ringkas:
{ "filename": "test.txt", "chunkSize": NumberInt(261120), "uploadDate": ISODate("2014-04-13T11:32:33.557Z"), "md5": "7b762939321e146569b07f72c62cca4f", "length": NumberInt(646) }
Berikut ialah dokumen pengumpulan fs.chunks yang ringkas:
{ "files_id": ObjectId("534a75d19f54bfec8a2fe44b"), "n": NumberInt(0), "data": "Mongo Binary Data" }
GridFS Add Files
Kini kami menggunakan perintah put GridFS untuk menyimpan fail mp3. Panggil alat mongofiles.exe dalam tong dalam direktori pemasangan MongoDB.
Buka gesaan arahan, pergi ke direktori bin direktori pemasangan MongoDB, cari mongofiles.exe dan masukkan kod berikut:
>mongofiles.exe -d gridfs put song.mp3
GridFS ialah nama data fail yang disimpan. Jika pangkalan data tidak wujud, MongoDB akan menciptanya secara automatik. Song.mp3 ialah nama fail audio.
Gunakan arahan berikut untuk melihat dokumen fail dalam pangkalan data:
>db.fs.files.find()
Selepas arahan di atas dilaksanakan, data dokumen berikut akan dikembalikan:
{ _id: ObjectId('534a811bf8b4aa4d33fdf94d'), filename: "song.mp3", chunkSize: 261120, uploadDate: new Date(1397391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41", length: 10401959 }
kami Anda boleh melihat semua ketulan dalam koleksi fs.chunks Di bawah kami mendapat nilai _id fail Kami boleh mendapatkan data ketulan berdasarkan _id ini:
>db.fs.chunks.find({files_id:ObjectId('534a811bf8b4aa4d33fdf94d')})<🎜. > Dalam contoh di atas, data pertanyaan untuk 40 dokumen telah dikembalikan, bermakna fail mp3 disimpan dalam 40 keping.