Latest web development tutorials

MongoDB GridFS

GridFS لتخزين واستعادة تلك أكثر من 16M (الحد ملف BSON) الملفات (مثل: الصور والصوت والفيديو، الخ).

طريقة واحدة هي تخزين الملفات GridFS، وإنما هو في تخزين جمع في MonoDB.

GridFS ذاكرة أفضل من الوثائق 16M.

سوف GridFS تستهدف الملفات الكبيرة إلى عدة أصغر قطعة (ملف شظية)، وعادة ما يتم تخزين 256K /، واحد لكل قطعة كوثيقة من وثائق MongoDB (الوثيقة) في جمع قطع.

GridFS اثنين من جمع لتخزين ملف: fs.files وfs.chunks.

يتم تخزين المحتويات الفعلية من كل ملف في قطع (البيانات الثنائية)، وبيانات التعريف والوثائق المتعلقة (اسم الملف، 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 دليل التثبيت بن أداة mongofiles.exe.

افتح موجه الأوامر، انتقل إلى الدليل بن دليل التثبيت 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 كتل.