English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
GridFS هو معيار MongoDB用于存储 واسترجاع ملفات كبيرة، مثل الصور، ملفات الصوت، ملفات الفيديو وما إلى ذلك. يشبه نظام ملفات لتخزين الملفات، ولكن بياناته مخزنة في مجموعات MongoDB. يمكن لـ GridFS تخزين ملفات أكبر حتى من حد حجم المستندات (16mb) المحدد.
يقسم GridFS الملفات إلى قطع عديدة ويخزن كل قطعة بيانات في مستند منفرد، ويمكن أن يكون حجم كل ملف أقصى 255k.
بافتراض الافتراض، يستخدم GridFS مجموعتين،fs.files
وfs.chunks
تخزين بيانات الملفات والمكونات. كل قطعة معروفة بمعرفها الفريد ObjectId. fs.files كوثيقة أم.files_id
الحقول في مستند fs.chunks تربط القطع بأبها.
هذا هو مستند نموذج لـ 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" }
الآن، سنستخدمput
يستخدم الأمر GridFS لتخزين ملفات mp3. لذلك، سنستخدمmongofiles.exe
أدوات في مجلد bin لتثبيت MongoDB.
افتح سطر الأوامر، انتقل إلى مجلد bin في مجلد تثبيت MongoDB، ثم اكتب الكود التالي-
>mongofiles.exe -d gridfs put song.mp3
هناgridfs
اسم قاعدة البيانات التي سيتم فيها تخزين ملفات البيانات. إذا لم تكن قاعدة البيانات موجودة، سيقوم MongoDB بإنشاء مستند جديد ديناميكي تلقائيًا. Song.mp3 هو اسم ملف التحميل. لإلقاء نظرة على مستند ملفات البيانات في قاعدة البيانات، يمكنك استخدام استعلام find-
>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 مستندًا، مما يعني أن جميع مستندات mp3 قد تم تقسيمها إلى 40 قطعة بيانات.