MongoDB GridFS
GridFS สำหรับการจัดเก็บและฟื้นฟูผู้ที่มีอายุมากกว่า 16 ล้าน (BSON ไฟล์ จำกัด ) ไฟล์ (เช่น: ภาพ, เสียง, วิดีโอ, ฯลฯ )
วิธีหนึ่งคือการจัดเก็บไฟล์ GridFS แต่มันอยู่ในคอลเลกชันจะถูกเก็บไว้ใน MonoDB
GridFS หน่วยความจำที่ดีกว่าเอกสาร 16M
GridFS จะกำหนดเป้าหมายไฟล์ขนาดใหญ่เป็นขนาดเล็กหลายชิ้น (ชิ้นส่วนไฟล์) ซึ่งโดยปกติจะ 256K / หนึ่งสำหรับแต่ละก้อนเป็นเอกสารของ MongoDB (เอกสาร) จะถูกเก็บไว้ในคอลเลกชันชิ้น
GridFS สองคอลเลกชันในการจัดเก็บไฟล์: fs.files และ fs.chunks
เนื้อหาที่แท้จริงของแต่ละไฟล์จะถูกเก็บไว้ในชิ้น (ข้อมูลไบนารี) ข้อมูล meta และเอกสารที่เกี่ยวข้องกับ (ชื่อไฟล์ content_type เช่นเดียวกับคุณลักษณะที่ผู้ใช้กำหนด) มันจะถูกเก็บไว้ในไฟล์ในการเก็บรวบรวม
ต่อไปนี้เป็นคอลเลกชันของเอกสาร fs.files ง่าย:
{ "filename": "test.txt", "chunkSize": NumberInt(261120), "uploadDate": ISODate("2014-04-13T11:32:33.557Z"), "md5": "7b762939321e146569b07f72c62cca4f", "length": NumberInt(646) }
ต่อไปนี้เป็นคอลเลกชันของเอกสาร fs.chunks ง่าย:
{ "files_id": ObjectId("534a75d19f54bfec8a2fe44b"), "n": NumberInt(0), "data": "Mongo Binary Data" }
GridFS เพิ่มแฟ้ม
ตอนนี้เราใช้ GridFS ใส่คำสั่งในการจัดเก็บไฟล์ MP3 โทร MongoDB bin ไดเรกทอรีการติดตั้งเครื่องมือ mongofiles.exe
เปิดพร้อมรับคำสั่งให้ไปที่ไดเรกทอรี bin ไดเรกทอรีการติดตั้ง MongoDB ค้นหา mongofiles.exe และป้อนรหัสต่อไปนี้:
>mongofiles.exe -d gridfs put song.mp3
GridFS เป็นชื่อของแฟ้มข้อมูลจะถูกเก็บไว้ ถ้าฐานข้อมูลไม่ได้อยู่ MongoDB จะถูกสร้างขึ้นโดยอัตโนมัติ Song.mp3 เป็นชื่อไฟล์เสียง
ใช้คำสั่งต่อไปนี้เพื่อดูเอกสารในแฟ้มฐานข้อมูล:
>db.fs.files.find()
หลังจากรันคำสั่งดังกล่าวจะส่งกลับข้อมูลเอกสารต่อไปนี้:
{ _id: ObjectId('534a811bf8b4aa4d33fdf94d'), filename: "song.mp3", chunkSize: 261120, uploadDate: new Date(1397391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41", length: 10401959 }
เราสามารถดูทั้งหมดบล็อก fs.chunks ชุด, เราได้รับเอกสารที่มีค่า _id ต่อไปนี้เราจะได้รับการป้องกัน (ก้อน) ของข้อมูลให้สอดคล้องกับ _id นี้:
>db.fs.chunks.find({files_id:ObjectId('534a811bf8b4aa4d33fdf94d')})
ตัวอย่างข้างต้นแบบสอบถามส่งกลับข้อมูล 40 ของเอกสารซึ่งหมายความว่ามีไฟล์ MP3 ที่เก็บไว้ใน 40 ช่วงตึก