Latest web development tutorials

MongoDB الفهرسة المتقدمة

النظر في الوثيقة التالية مجموعات (المستخدمين):

{
   "address": {
      "city": "Los Angeles",
      "state": "California",
      "pincode": "123"
   },
   "tags": [
      "music",
      "cricket",
      "blogs"
   ],
   "name": "Tom Benzamin"
}

وتتضمن الوثيقة المذكورة الوثائق الفرعية، وتتناول مجموعة من العلامات.


المجال مجموعة مفهرسة

لنفترض أننا استرداد تسمية القائم على المستخدم، ونحن بحاجة إلى مؤشر مجموعة علامات مجموعة.

إنشاء فهرس في مجموعة، مجموعة من الاحتياجات لكل حقل بدوره فهرستها. حتى عندما وإنشاء فهرس للعلامات مجموعة، فإنه سيتم توفير الموسيقى، والكريكيت، بلوق ثلاث قيم لإنشاء مؤشر منفصل.

إنشاء فهرس مجموعة، استخدم الأمر التالي:

>db.users.ensureIndex({"tags":1})

بعد إنشاء الفهرس، يمكننا استرداد جمع حقل العلامات:

>db.users.find({tags:"cricket"})

استخدمنا للتحقق من استخدام الفهرس، يمكنك استخدام الأمر شرح:

>db.users.find({tags:"cricket"}).explain()

وقال أنه تم استخدام مؤشر "BtreeCursor tags_1": إن نتائج الأمر أعلاه تظهر "المؤشر".


مؤشر المجال وثيقة الفرعية

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

إنشاء فهرس للحقول الفرعية الثلاثة للوثيقة، والأمر كما يلي:

>db.users.ensureIndex({"address.city":1,"address.state":1,"address.pincode":1})

بمجرد إنشاء مؤشر، يمكننا استخدام هذا المجال لاسترداد وثائق فرعية البيانات:

>db.users.find({"address.city":"Los Angeles"})   

تذكر تعبير استعلام يجب أن تتبع من أجل الفهرس المحدد. وبالتالي فإن مؤشر إنشاؤها أعلاه ستدعم الاستعلام التالي:

>db.users.find({"address.city":"Los Angeles","address.state":"California"}) 

يدعم أيضا الاستعلام التالي:

>db.users.find({"address.city":"LosAngeles","address.state":"California","address.pincode":"123"})