Latest web development tutorials

مراجع قاعدة بيانات MongoDB

في الجزء السابق ذكرنا العلاقة MongoDB MongoDB إشارة إلى توحيد بنية البيانات من الوثيقة.

MongoDB اثنين من المراجع:

  • دليل مرجعي (المراجع يدوي)
  • DBRefs

DBRefs مقابل دليل مرجعي

النظر في مثل هذا السيناريو، لدينا مجموعة مختلفة (address_home، address_office، address_mailing، الخ) المخزنة في عنوان مختلف (العنوان، عنوان المكتب، والعنوان البريدي، الخ).

وهكذا، عندما ندعو عنوان مختلف، تحتاج إلى تحديد مجموعة، مجموعة من الوثائق من عدة المشار إليها الوثائق، يتعين علينا أن نستخدم DBRefs.


استخدام DBRefs

أشكال DBRef:

{ $ref : , $id : , $db :  }

أهمية ثلاثة حقول يمثلها:

  • $ المرجع: اسم المجموعة
  • $ رقم: معرف المرجع
  • $ ديسيبل: اسم قاعدة البيانات، المعلمات الاختيارية

يستخدم المثال التالي مستند بيانات المستخدم DBRef، عنوان الملعب:

{
   "_id":ObjectId("53402597d852426020000002"),
   "address": {
   "$ref": "address_home",
   "$id": ObjectId("534009e4d852427820000002"),
   "$db": "w3cschoolcc"},
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin"
}

يحدد حقلالعنوان DBRef الوثائق عنوان المشار إليها تحت address_home قاعدة بيانات w3cschoolcc جمع، هو معرف 534009e4d852427820000002.

التعليمة البرمجية التالية، علينا أن نجد جمع في العنوان المحدد هوية المستخدم المعلومات المحددة من قبل المعلمة $ المرجع (address_home مجموعة):

>var user = db.users.findOne({"name":"Tom Benzamin"})
>var dbRef = user.address
>db[dbRef.$ref].findOne({"_id":(dbRef.$id)})

عادت الأمثلة المذكورة أعلاه address_home البيانات عنوان مجموعة:

{
   "_id" : ObjectId("534009e4d852427820000002"),
   "building" : "22 A, Indiana Apt",
   "pincode" : 123456,
   "city" : "Los Angeles",
   "state" : "California"
}