سؤال

قل لدي مستند عنصر مع: السعر و: الحقول الكمية. أرغب أحيانًا في العثور على جميع المستندات المطابقة مع المعطى: Price و: Qty ، وفي أوقات أخرى سيكون إما: السعر من تلقاء نفسه أو: Qty من تلقاء نفسه.

لقد قمت بالفعل بفهرسة: السعر و: مفاتيح Qty ، لكن هل أحتاج أيضًا إلى إنشاء فهرس مركب على حد سواء أو هل فهارس المفاتيح الفردية كافية؟

تحرير: لقد وجدت هذا المقال على موقع MongoDB مفيد جدًا:

http://www.mongodb.org/display/docs/indexing+advice+and+faq

هل كانت مفيدة؟

المحلول

فهرس على price يساعد في الاستعلامات على price. فهرس على qty يساعد في الاستعلامات على qty. فهرس على price و qty يساعد في الاستعلامات على price والاستعلامات على price و qty. لذلك ، يشبه الحصول على فهسين لسعر واحد. لن يساعد في الاستفسارات qty, ، رغم ذلك.

يجب عليك تقليل عدد الفهارس التي لديك ، لذا قم بإسقاط أحد فهارس المفتاح الواحد وإنشاء فهرس مركب يبدأ بهذا المفتاح.

كقاعدة عامة ، إذا كنت تقوم باستعلام على x, y, ، و z, ، يجب أن يكون لديك فهرس مثل {x:1, y:1, z:1}. سيجعل هذا الفهرس الاستعلامات التالية بسرعة:

db.foo.find({x : ..., y : ..., z : ...})
db.foo.find({x : ..., y : ...})
db.foo.find({x : ...})

لن يجعل هذه الاستفسارات سريعة:

db.foo.find({y : ..., z : ...})
db.foo.find({y : ...})

لذلك ، تأكد من أن الاستعلام الخاص بك يحتوي على مفتاح (ق) بدء الفهرس فيه.

نصائح أخرى

إذا كنت بحاجة إلى: السعر من تلقاء نفسه أو: Qty من تلقاء نفسه ، فلن يعمل فهرس المركب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top