2015-02-13 7 views
10

मैं संस्करण 3.xकोचबेस - मुझे N1QL बनाम दृश्यों का उपयोग कब करना चाहिए?

मेरे संदेह नहीं है पर काउचआधारित सीख रहा हूँ, अब, जब मैं एक N1QL क्वेरी बनाम एक देखें क्वेरी इस्तेमाल करना चाहिए?

और, क्या उनके बीच प्रदर्शन अंतर हैं?


नोट: मार्ग और शहर

एक मार्ग डॉक रखती है: दो दस्तावेज़ प्रकार मेरी यात्रा App के लिए साथ

एक बाल्टी: मैं एक स्थिति है यात्रा मार्ग और शहर की एक श्रृंखला के बारे में जानकारी आईडी इसके हिस्से में, फिर एक और डॉक्टर शहर की जानकारी रखता है (प्रत्येक शहर का अपना डॉक्टर होता है)। उदाहरण:

//Bucket : "Traveling App" 

{ 
    "type" : "route" 
    "name" : "The Great Adventure", 
    "cities" : ["234", "h4345", "h42da"] 
} 

{ 
    "type" : "city", 
    "name" : "Little Town", 
    "UID" : "234" 
} 

जब मैं एक निश्चित यात्रा मार्ग के लिए क्वेरी, मैं एक N1QL क्वेरी या एक देखें क्वेरी करना चाहिए?

क्योंकि मैं पहले मार्ग दस्तावेज़ को खोलने के करने के लिए होता है, प्रत्येक शहर दस्तावेज़ प्राप्त की तुलना में शहरों सरणी मिलता है।

और मुझे लगता है कि यह वास्तुकला सबसे अच्छा होगा, क्योंकि कुछ मार्गों में बहुत कम शहर हो सकते हैं और अन्य के पास बहुत सारे शहर हो सकते हैं।

उत्तर

6

एन 1QL आपके डेटा के लिए वादा करता है। भले ही यह एक और पोस्टर बताता है, डेवलपर पूर्वावलोकन में, यह अन्वेषण करने लायक है। आप के साथ ही घोंसला traveling_app कर सकते हैं पाने के लिए शहर के सभी डॉक्स 'नेस्ट' प्रत्येक मार्ग के साथ:

चयन r.name, से चाबी r.cities पर traveling_app आर घोंसला traveling_app ग ग;

कहते हैं कि एक विशेष मार्ग के लिए शहर के नाम पाने के लिए, कुंजी के रूप में मार्ग के शहरों का उपयोग कर के साथ ही traveling_app में शामिल होने:

चयन c.name traveling_app R से CITY_NAME पर KEYS शामिल हों के रूप में traveling_app ग r.cities कहां r.name = "महान साहसिक";

ये प्रश्न एक ही मार्ग पर कितने शहरों के बावजूद संचालित होंगे।

1

N1QL उन सभी कार्यक्षमताओं को प्रदान करता है जिन्हें आपको सही मार्ग प्राप्त करने की आवश्यकता होगी। N1QL आपके द्वारा देखे जा रहे मार्ग के लिए फ़िल्टरिंग और फिर इन दो प्रकार के दस्तावेज़ों में शामिल होने के लिए एरे के अनजान कर सकते हैं। तो, एन 1QL जाने का रास्ता है।

+3

नोट हालांकि, N1QL अभी तक जारी नहीं किया गया है। यह डेवलपर पूर्वावलोकन में है। –

1

उदाहरण: यदि आप किसी शहर के सभी संभावित मार्गों को जानना चाहते हैं, तो आपको एक ऐसे दृश्य की आवश्यकता है जो हमेशा पूछे जाने से पहले प्रीकंप्यूटेड और तैयार हो।

आप अनुक्रमण के माध्यम से एक ही क्वेरी करते हैं, यह अब प्रतिक्रिया समय के लिए नेतृत्व करेंगे अधिक प्रलेखन यहां पाया जा सकता: http://developer.couchbase.com/documentation/server/4.0/architecture/gsi-versus-views.html

संबंधित मुद्दे