Binary (بيانات ثنائية)
آخر تحديث: 2026-10-09
Binary (بيانات ثنائية)
يخزّن Binary الصور والملفات والبيانات المشفرة والمعرّفات UUID — أكثر ضغطًا من سلاسل Base64، مع أنواع فرعية (0 عام، 2 ثنائي قديم، 3 UUID قديم، 4 UUID، 7 مشفر). خزّنه مباشرةً ضمن حد المستند البالغ 16 ميجابايت؛ واستخدم GridFS للملفات الأكبر. في mongosh أنشئه بـ `BinData(subtype, 'base64')` أو `Binary.createFromBase64('...')`.
| الفئة | أنواع BSON |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
BinData(<subtype>, "<base64>")
UUID("<uuid string>")
Binary.createFromBase64("<base64>")
القيمة المرجعة:يُرجع قيمة BSON من نوع Binary
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// Binary: تخزين بيانات ثنائية
use shop
db.files.insertOne({ name: 'logo.png', data: BinData(0, 'iVBORw0KGgo=') })
المخرجات:
{ _id: ObjectId('...'), name: 'logo.png', data: Binary.createFromBase64('iVBORw0KGgo=') }
📌 ملاحظات
- الملفات الكبيرة تنتمي إلى GridFS، لا إلى المستندات (حد 16 ميجابايت)
- خزّن UUID كنوع فرعي 4 لاتساق المشغلات
- سلاسل Base64 تكلف ~33% مساحة إضافية مقارنةً بـ Binary
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يمكنني تخزين الصور مباشرةً في MongoDB؟
Aدون 16 ميجابايت، نعم — استخدم حقل Binary؛ وأبعد من ذلك استخدم GridFS أو تخزين الكائنات.
Qكيف يُخزَّن UUID في MongoDB؟
Aكنوع فرعي 4 من Binary (UUID)؛ تحوّل المشغلات تلقائيًا.
QBinary أم سلسلة Base64؟
Aاستخدم Binary للبيانات الثنائية (مضغوط وذو أنواع فرعية)؛ وString للنص.