कुछ फीड बैक के आधार पर मुझे ऐसा लगता है कि सूची फ़ील्ड का उपयोग शार्ड कुंजी के रूप में करना संभव नहीं है, मैं यह बताना चाहता हूं कि मोंगोडीबी की सीमाओं का उपयोग करके इस उपयोग के मामले को कैसे तेज किया जा सकता है:
मूल वस्तु:
widget:
{
primary_key: '2389sdjsdafnlfda'
categories: ['hair', 'nails', 'dress']
colors: ['red', 'white']
#All the other fields in the document that don't need to be queried upon:
...
...
}
डेटा लेयर, शार्ड की के लिए चुने गए फ़ील्ड में तत्वों की संख्या के आधार पर ऑब्जेक्ट को कई पॉइंटर ऑब्जेक्ट में विभाजित करता है:
widget_pointer:
{
primary_key: '2389sdjsdafnlfda'
categories: 'hair',
colors: ['red', 'white']
}
widget_pointer:
{
primary_key: '2389sdjsdafnlfda'
categories: 'nails',
colors: ['red', 'white']
}
widget_pointer:
{
primary_key: '2389sdjsdafnlfda'
categories: 'dress',
colors: ['red', 'white']
}
स्पष्टीकरण:
- फ़ील्ड
categoriesअब MongoDB में शार्प की हो सकती है। - मूल वस्तु अब की-वैल्यू स्टोर में संग्रहित की जाएगी। MongoDB में डेटा के विरुद्ध क्वेरीज़ एक पॉइंटर ऑब्जेक्ट लौटाएगी जिसका उपयोग ऑब्जेक्ट को की-वैल्यू स्टोर से प्राप्त करने के लिए किया जाएगा।
- MongoDB डेटा पर क्वेरी केवल एक शार्प को हिट करेगी।
- MongoDB डेटा पर सम्मिलन सूची में तत्वों के रूप में कई शार्क हिट करेगा, ज्यादातर मामलों में, शार्क की कुल संख्या का केवल एक छोटा सा उपसमूह प्रभावित होगा।