MongoDB - ग्रिड्सएफएस

GridFSबड़ी फ़ाइलों जैसे छवियों, ऑडियो फ़ाइलों, वीडियो फ़ाइलों आदि को संग्रहीत करने और पुनर्प्राप्त करने के लिए MongoDB विनिर्देश है। यह फ़ाइलों को संग्रहीत करने के लिए एक फ़ाइल सिस्टम की तरह है लेकिन इसका डेटा MongoDB संग्रह के भीतर संग्रहीत किया जाता है। GridFS में 16MB की दस्तावेज़ आकार सीमा से अधिक फ़ाइलों को संग्रहीत करने की क्षमता है।

GridFS एक फ़ाइल को विखंडू में विभाजित करता है और डेटा के प्रत्येक भाग को एक अलग दस्तावेज़ में संग्रहीत करता है, प्रत्येक अधिकतम आकार 255k।

डिफ़ॉल्ट रूप से ग्रिड्स दो संग्रह का उपयोग करता है fs.files तथा fs.chunksफ़ाइल के मेटाडेटा और विखंडू को संग्रहीत करने के लिए। प्रत्येक ठग की पहचान उसके अनूठे _id ObjectId क्षेत्र से होती है। Fffiles एक मूल दस्तावेज के रूप में कार्य करता है। files_id fschunks दस्तावेज़ में फ़ील्ड अपने माता-पिता के लिए लिंक को जोड़ता है।

निम्नलिखित fffiles संग्रह का एक नमूना दस्तावेज है -

{
   "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 का उपयोग करके एक एमपी 3 फ़ाइल स्टोर करेंगे putआदेश। इसके लिए, हम इसका उपयोग करेंगेmongofiles.exe MongoDB स्थापना फ़ोल्डर के बिन फ़ोल्डर में मौजूद उपयोगिता।

अपना कमांड प्रॉम्प्ट खोलें, 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 संग्रह में मौजूद सभी विखंडू भी देख सकते हैं -

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

मेरे मामले में, क्वेरी ने 40 दस्तावेज़ लौटाए हैं जिसका अर्थ है कि पूरे एमपी दस्तावेज़ को 40 डेटा में विभाजित किया गया था।